Java convertToImage()的PDFBox操作不受支持
我想得到pdf作为jpg图像的第一页。程序显示了一些错误:Java convertToImage()的PDFBox操作不受支持,java,pdfbox,Java,Pdfbox,我想得到pdf作为jpg图像的第一页。程序显示了一些错误: Apr 18, 2016 1:18:40 PM org.apache.pdfbox.util.PDFStreamEngine processOperator INFO: unsupported/disabled operation: BDC Apr 18, 2016 1:18:40 PM org.apache.pdfbox.util.PDFStreamEngine processOperator INFO: unsupported/di
Apr 18, 2016 1:18:40 PM org.apache.pdfbox.util.PDFStreamEngine processOperator
INFO: unsupported/disabled operation: BDC
Apr 18, 2016 1:18:40 PM org.apache.pdfbox.util.PDFStreamEngine processOperator
INFO: unsupported/disabled operation: EMC
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/fontbox/afm/AFMParser
at org.apache.pdfbox.pdmodel.font.PDFont.addAdobeFontMetric(PDFont.java:165)
at org.apache.pdfbox.pdmodel.font.PDFont.addAdobeFontMetric(PDFont.java:152)
at org.apache.pdfbox.pdmodel.font.PDFont.getAdobeFontMetrics(PDFont.java:122)
at org.apache.pdfbox.pdmodel.font.PDFont.<clinit>(PDFont.java:114)
at org.apache.pdfbox.pdmodel.font.PDFontFactory.createFont(PDFontFactory.java:108)
at org.apache.pdfbox.pdmodel.PDResources.getFonts(PDResources.java:213)
at org.apache.pdfbox.util.PDFStreamEngine.getFonts(PDFStreamEngine.java:607)
at org.apache.pdfbox.util.operator.SetTextFont.process(SetTextFont.java:59)
at org.apache.pdfbox.util.PDFStreamEngine.processOperator(PDFStreamEngine.java:557)
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:139)
at org.apache.pdfbox.pdmodel.PDPage.convertToImage(PDPage.java:801)
at org.apache.pdfbox.pdmodel.PDPage.convertToImage(PDPage.java:732)
at Main.main(Main.java:26)
Caused by: java.lang.ClassNotFoundException: org.apache.fontbox.afm.AFMParser
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 16 more
我只需要将第一页解析为图像。
试着研究这个问题,“标记为正确答案”告诉你如何实现你的愿望的正确方法 大部分是重复的,fontbox丢失了,另请参见,这是因为我所理解的字体类型。但我如何删除警告?这是另一个问题。该警告是1.8的典型警告。解决方案:更新到2.0。别忘了阅读迁移指南。即使是1.8版本也可以不显示这样的警告。因此,@munchallow,您是否一定要使用2.0.0之前的版本?我使用的是1.8.5。和PDFBox 1.8.10。我尝试了十种不同的PDF,我得到了第一页的图片,也得到了一些警告或信息信息,就像我在第一次评论中展示的那样。我应该将fontbox和pdfbox都更新为2.0吗?引用的答案既不能解释缺少的资源,也不能阻止OP在此处所需的警告。我遵循了这一点,我确实看到了这些警告
try {
String sourceDir = "/home/linux/Downloads/test.pdf";
String destinationDir = "/home/linux/Downloads/testImage";
File sourceFile = new File(sourceDir);
File destinationFile = new File(destinationDir);
PDDocument document = PDDocument.load(sourceDir);
PDPage firstPage = (PDPage) document.getDocumentCatalog().getAllPages().get(1);
String fileName = sourceFile.getName().replace(".pdf", "");
BufferedImage image = firstPage.convertToImage();
ImageIO.write(image , "jpg", new File(destinationDir +fileName+"_"+".jpg"));
document.close();
} catch (Exception e) {
e.printStackTrace();
}