Я хочу конвертировать PDF-страницы в изображение (PNG, JPEG/JPG или GIF). Я хочу, чтобы они были полностраничными.PDF to image using Java
Как это можно сделать с помощью Java? Какие библиотеки доступны для достижения этого?
Я хочу конвертировать PDF-страницы в изображение (PNG, JPEG/JPG или GIF). Я хочу, чтобы они были полностраничными.PDF to image using Java
Как это можно сделать с помощью Java? Какие библиотеки доступны для достижения этого?
Вам понадобится рендеринг PDF. На рынке есть несколько более или менее хороших (ICEPdf, pdfrenderer), но без них вам придется полагаться на внешние инструменты. Бесплатные рендереры PDF также не могут отображать встроенные шрифты, и это будет полезно только для создания миниатюр (чего вы в конечном итоге хотите).
Мой любимый внешний инструмент - Ghostscript, который может конвертировать PDF-файлы в изображения с помощью одного вызова командной строки.
Это превращает Postscript файлы в BMP для нас, только в качестве руководства для изменения ваших потребностей (и PDF?) (Знайте, что Вы нуждаетесь в окр вары для гс работать!):
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
Hi Daniel, спасибо за быстрый ответ, могу ли я автоматизировать Ghostscript с помощью Java? Если возможно, как я могу это сделать? Где я могу найти очень хороший учебник Ghostscript, спасибо еще раз! –
Возможно, посмотрите Ghost4J http://ghost4j.sourceforge.net/coreapisamples.html – anergy
Не совсем верно, что «бесплатные рендеринги не могут красить встроенные шрифты» - по крайней мере, jPodRenderer делает это ... – mtraut
Посмотрите на статьи:
1) PdftoImage-Convert PDF to Image by using PdfRenderer library, прямая ссылка на source code
2) Java: Generating PDF and Previewing it as an Image – iText and PDF Renderer
Если GPL отлично вы может иметь дополнительный взгляд на jPodRenderer (SourceForge)
В библиотеке Ghost4J (http://ghost4j.sourceforge.net), начиная с версии 0.4.0 вы можете использовать SimpleRenderer, чтобы сделать работу с несколькими строками кода :
Загрузить PDF или PS файл (используйте класс PSDocument для этого):
PDFDocument document = new PDFDocument();
document.load(new File("input.pdf"));
Создать визуализатор
SimpleRenderer renderer = new SimpleRenderer();
// set resolution (in DPI)
renderer.setResolution(300);
Рендер
List<Image> images = renderer.render(document);
Тогда вы можете делать то, что вы хотите с вашими объектами изображения, например, вы можете написать их как PNG, как это:
for (int i = 0; i < images.size(); i++) {
ImageIO.write((RenderedImage) images.get(i), "png", new File((i + 1) + ".png"));
}
Примечание: Ghost4J использует собственный API Ghostscript C, поэтому вам необходимо установить Ghostscript на вашем поле.
Я надеюсь, что это поможет :)
Эй, я получаю сообщение об ошибке «Исключение в потоке» main «java.lang.UnsatisfiedLinkError: Не удается загрузить библиотеку« gsdll32 »: указанный модуль не найден. " Я уже установил последнюю версию Ghostscript. Пожалуйста, помогите :( –
Это означает, что библиотека Ghostscript не найдена ... На какой ОС вы работаете? Убедитесь, что .dll/.so находится на пути к системной библиотеке. – zippy1978
Просто установка Ghostscript не работает для меня. это bu, отбрасывающее gsdll32.dll в папку проекта Eclipse. – MyTitle
Apache PDF Box может конвертировать PDF-файлы в форматах JPG, BMP, WBMP, PNG и GIF.
В библиотеке есть утилита командной строки, называемая PDFToImage.
Если вы загружаете исходный код и смотрите класс PDFToImage, вы должны выяснить, как использовать PDF Box для преобразования PDF-файлов в изображения с вашего собственного кода Java.
это несколько противоречиво для изображений. Если в исходном PDF-файле есть «ColorPattern» (а не изображение, но похожее ... запутанное), оно не будет скопировано в desti изображение нации. http://stackoverflow.com/questions/28589477/pdfbox-pdf-to-image-losing-qr-code-colorspace-pattern-doesnt-provide-a-non-str?noredirect1_comment45487987_28589477 – mmcrae
, но может быть улучшения в версии 2.x PDFBox! (надеется) – mmcrae
См. https://pdfbox.apache.org/2.0/migration.html в PDF-рендеринге для получения подробной информации о том, как это сделать в PDFBox 2.0.0 – gordon613
jPDFImages не является бесплатной, а представляет собой коммерческую библиотеку, которая преобразует страницы PDF в изображения в формате JPEG, TIFF или PNG. Размер выходного изображения настраивается.
Вы связаны с этим продуктом? Пожалуйста, не забудьте прочитать faq на продвижение http://stackoverflow.com/faq#promotion – Leigh
О, мне было бы интересно узнать. Хорошо, если есть опция изменения размера. – Nishant
http://stackoverflow.com/questions/356550/a-good-library-for-converting-pdf-to-tiff –
@Nishant: когда вы получаете объект изображения, вы можете его преобразовать;) – Maxym