Tôi muốn chuyển đổi các trang PDF thành hình ảnh (PNG, JPEG/JPG hoặc GIF). Tôi muốn chúng ở kích thước toàn trang.PDF sang hình ảnh bằng cách sử dụng Java
Làm cách nào để thực hiện điều này bằng Java? Những thư viện nào có sẵn để đạt được điều này?
Tôi muốn chuyển đổi các trang PDF thành hình ảnh (PNG, JPEG/JPG hoặc GIF). Tôi muốn chúng ở kích thước toàn trang.PDF sang hình ảnh bằng cách sử dụng Java
Làm cách nào để thực hiện điều này bằng Java? Những thư viện nào có sẵn để đạt được điều này?
Bạn sẽ cần trình kết xuất PDF. Có một số ít hay nhiều sản phẩm tốt trên thị trường (ICEPdf, pdfrenderer), nhưng không có, bạn sẽ phải dựa vào các công cụ bên ngoài. Các trình kết xuất PDF miễn phí cũng không thể hiển thị các phông chữ được nhúng và do đó sẽ chỉ tốt cho việc tạo hình thu nhỏ (những gì bạn muốn).
Công cụ bên ngoài yêu thích của tôi là Ghostscript, công cụ này có thể chuyển đổi PDF sang hình ảnh bằng một lời gọi dòng lệnh duy nhất.
này chuyển Postscript file sang bmp cho chúng ta, cũng giống như một hướng dẫn để sửa đổi cho các nhu cầu của bạn (và PDF?) (Biết bạn cần env VAR cho gs làm việc!):
pushd
setlocal
Set BIN_DIR=C:\Program Files\IKOffice_ACME\bin
Set GS=C:\Program Files\IKOffice_ACME\gs
Set GS_DLL=%GS%\gs8.54\bin\gsdll32.dll
Set GS_LIB=%GS%\gs8.54\lib;%GS%\gs8.54\Resource;%GS%\fonts
Set Path=%Path%;%GS%\gs8.54\bin
Set Path=%Path%;%GS%\gs8.54\lib
call "%GS%\gs8.54\bin\gswin32c.exe" -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE#bmpmono -r600x600 -sOutputFile#%2 -f %1
endlocal
popd
Xin chào Daniel, cảm ơn bạn đã trả lời nhanh, Tôi có thể tự động hóa Ghostscript bằng Java không? Nếu có thể làm thế nào tôi có thể làm điều đó? Nơi tôi có thể tìm thấy hướng dẫn Ghostscript rất tốt, Cảm ơn một lần nữa! –
Có thể xem Ghost4J http://ghost4j.sourceforge.net/coreapisamples.html – anergy
Không hoàn toàn đúng khi "trình kết xuất miễn phí không thể thu nhỏ lại các phông chữ được nhúng" - ít nhất jPodRenderer làm như vậy ... – mtraut
Hãy xem các bài viết:
1) PdftoImage-Convert PDF to Image by using PdfRenderer library, liên kết trực tiếp đến source code
2) Java: Generating PDF and Previewing it as an Image – iText and PDF Renderer
Nếu GPL là tốt bạn có thể có một cái nhìn bổ sung tại jPodRenderer (SourceForge)
Trong Ghost4J thư viện (http://ghost4j.sourceforge.net), kể từ phiên bản 0.4.0 bạn có thể sử dụng một SimpleRenderer để thực hiện công việc với vài dòng mã :
tải PDF hoặc file PS (sử dụng PSDocument lớp cho rằng):
PDFDocument document = new PDFDocument();
document.load(new File("input.pdf"));
Tạo các renderer
SimpleRenderer renderer = new SimpleRenderer();
// set resolution (in DPI)
renderer.setResolution(300);
Render
List<Image> images = renderer.render(document);
Sau đó, bạn có thể làm những gì bạn muốn với các đối tượng hình ảnh của bạn, ví dụ, bạn có thể viết chúng như PNG như thế này:
for (int i = 0; i < images.size(); i++) {
ImageIO.write((RenderedImage) images.get(i), "png", new File((i + 1) + ".png"));
}
Lưu ý: Ghost4J sử dụng API Ghostscript C gốc để bạn cần cài đặt Ghostscript trên hộp của mình.
Tôi hy vọng nó sẽ giúp bạn :)
Hey tôi nhận được lỗi nói "Ngoại lệ trong chủ đề" chính "java.lang.UnsatisfiedLinkError: Không thể tải thư viện 'gsdll32': Không tìm thấy mô-đun được chỉ định. " Tôi đã cài đặt phiên bản Ghostscript mới nhất. Xin vui lòng giúp đỡ: ( –
Điều này có nghĩa là thư viện Ghostscript không được tìm thấy ... Bạn đang làm việc trên hệ điều hành nào? Đảm bảo rằng .dll/.so nằm trên đường dẫn thư viện hệ thống – zippy1978
Đơn giản chỉ cần cài đặt Ghostscript không hoạt động cho tôi. này bu thả gsdll32.dll vào thư mục Project của Eclipse – MyTitle
Apache PDF Box có thể chuyển đổi file PDF sang jpg, bmp, WBMP, png và gif.
Thư viện thậm chí còn có tiện ích dòng lệnh gọi là PDFToImage để thực hiện việc này.
Nếu bạn tải xuống mã nguồn và xem lớp PDFToImage, bạn sẽ có thể tìm hiểu cách sử dụng Hộp PDF để chuyển đổi PDF sang hình ảnh từ mã Java của riêng bạn.
nó hơi không phù hợp Nếu có một "ColorPattern" (không phải là một hình ảnh nhưng tương tự .. khó hiểu) trong PDF nguồn, nó sẽ không được sao chép sang desti hình ảnh quốc gia. http://stackoverflow.com/questions/28589477/pdfbox-pdf-to-image-losing-qr-code-colorspace-pattern-doesnt-provide-a-non-str?noredirect=1#comment45487987_28589477 – mmcrae
nhưng có thể có cải tiến trong phiên bản 2.x của PDFBox! (hy vọng) – mmcrae
Xem https://pdfbox.apache.org/2.0/migration.html trong PDF Rendering để biết chi tiết về cách thực hiện việc này trong PDFBox 2.0.0 – gordon613
jPDFImages không miễn phí nhưng là thư viện thương mại chuyển đổi các trang PDF thành hình ảnh ở định dạng JPEG, TIFF hoặc PNG. Kích thước hình ảnh đầu ra có thể tùy chỉnh.
Bạn có liên kết với sản phẩm đó không? Hãy chắc chắn đọc faq về quảng cáo http://stackoverflow.com/faq#promotion – Leigh
Ồ, tôi sẽ rất thú vị khi biết. Nó tốt nếu có một tùy chọn thay đổi kích thước là tốt. – Nishant
http://stackoverflow.com/questions/356550/a-good-library-for-converting-pdf-to-tiff –
@Nantant: khi bạn nhận được đối tượng Hình ảnh, bạn được tự do chuyển đổi nó;) – Maxym