Я хотел конвертировать PDF-документ в изображение. Я использовал Ghost4j.Преобразование PDF-файла в изображение
Проблема: Ghost4J нуждается gsdll32.dll файла во время выполнения, и я не хотите использовать файл DLL.
Вопрос 1: есть ли способ, в ghost4j конвертировать изображение без DLL?
Вопрос 2: Я нашел решение в API PDFBox. org.apache.pdfbox.pdmodel.PDPagep have method
convertToImage() `, который преобразует PDF-страницу в формат изображения.
PDDocument doc = PDDocument.load(new File("/document.pdf"));
List<PDPage>pages = doc.getDocumentCatalog().getAllPages();
PDPage page = pages.get(0);
BufferedImage image =page.convertToImage();
File outputfile = new File("/image.png");
ImageIO.write(image, "png", outputfile);
doc.close();
У меня есть только текст в документе PDF. и у меня есть это исключение, когда я запускаю этот код:
Aug 12, 2013 6:00:24 PM org.apache.pdfbox.util.PDFStreamEngine processOperator
INFO: unsupported/disabled operation: BDC
Exception in thread "main" java.lang.ExceptionInInitializerError
at org.apache.pdfbox.pdmodel.font.PDTrueTypeFont.getawtFont(PDTrueTypeFont.java:481)
at org.apache.pdfbox.pdmodel.font.PDSimpleFont.drawString(PDSimpleFont.java:109)
at org.apache.pdfbox.pdfviewer.PageDrawer.processTextPosition(PageDrawer.java:235)
at org.apache.pdfbox.util.PDFStreamEngine.processEncodedText(PDFStreamEngine.java:496)
at org.apache.pdfbox.util.operator.ShowTextGlyph.process(ShowTextGlyph.java:62)
at org.apache.pdfbox.util.PDFStreamEngine.processOperator(PDFStreamEngine.java:554)
at org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:268)
at org.apache.pdfbox.util.PDFStreamEngine.processSubStream(PDFStreamEngine.java:235)
at org.apache.pdfbox.util.PDFStreamEngine.processStream(PDFStreamEngine.java:215)
at org.apache.pdfbox.pdfviewer.PageDrawer.drawPage(PageDrawer.java:125)
at org.apache.pdfbox.pdmodel.PDPage.convertToImage(PDPage.java:781)
at org.apache.pdfbox.pdmodel.PDPage.convertToImage(PDPage.java:712)
at ge.eid.esignature.adessa.pades.sign.PDFtoImage.main(PDFtoImage.java:25)
Caused by: java.lang.IllegalArgumentException
at java.nio.Buffer.position(Buffer.java:216)
at sun.font.TrueTypeFont.lookupName(TrueTypeFont.java:1153)
at sun.font.TrueTypeFont.getPostscriptName(TrueTypeFont.java:1205)
at java.awt.Font.getPSName(Font.java:1156)
at org.apache.pdfbox.pdmodel.font.FontManager.loadFonts(FontManager.java:101)
at org.apache.pdfbox.pdmodel.font.FontManager.<clinit>(FontManager.java:53)
... 13 more
Я получаю эту ошибку 26 мая 2015 г. 11:43:31 org.apache.pdfbox.util.PDFStreamEngine processOperator INFO: неподдерживаемая/отключенная операция: BDC 26 мая 2015 г. 11:43: 31 AM org.apache.pdfbox.util.PDFStreamEngine processOperator INFO: неподдерживаемый/disab led: EMC Я использую pdfbox 1.8.9 jar –
Это немного отличается для последней версии PDFbox. Используйте класс PDFRendered. –
pdf, который имеет как текстовое, так и графическое содержимое. Я видел, что после получения окончательного изображения (входного файла pdf) текстовые данные опускаются, отображается только часть изображения (например, фоновое изображение и т. Д.). Любая помощь в этом отношении приветствуется. – yeppe