这让我困扰了整整一天的下午。 我遇到很多问题,现在我无法克服它们。如何使用GhostScript将PDF转换为JPG
我的代码:
public void pdf2jpg(){
try {
File pdfFile =new File("c://tmp//1.pdf");
PDFDocument document = new PDFDocument();
document.load(pdfFile);
SimpleRenderer renderer = new SimpleRenderer();
renderer.setResolution(300);
List<Image> images = renderer.render(document);
for (int i = 0; i < images.size(); i++) {
Image img= images.get(i);
ImageIO.write((RenderedImage)img, "jpg", new File(i+".jpg"));
}
} catch (IOException | RendererException | DocumentException e) {
e.printStackTrace();
}
}
我的盒子:Windows 7中,JDK:1.7.0_45(64位),GPL的ghostscript 9.0.4。 当我使用ghost4j 0.4.4,我得到了错误 “net.sf.ghost4j.renderer.RendererException: net.sf.ghost4j.GhostscriptException: Cannot initialize Ghostscript interpreter. Error code is -20
”
上List<Image> images = renderer.render(document);
有些线程这里提到它是关于ghost4j版本。所以我改为0.4.6,error 20
消失了,但是在同一句话上来了Warning: An error occurred while reading an XREF table.
。
我无法弄清楚如何走出这个“泥”的,
非常感谢您的帮助。
这很奇怪,它成功地将pdf文件转换为jpg。但错误remain.'java.lang.reflect.InvocationTargetException \t在sun.reflect.GeneratedMethodAccessor4.invoke(来源不明) \t在sun.reflect.DelegatingMethodAccessorImpl.invoke(来源不明) \t在java.lang.reflect中。 Method.invoke(Unknown Source) \t .... 引起:java.lang.OutOfMemoryError:Java堆空间。有什么问题。任何建议。 – Ron
你绑定到ghost4j吗?当不尝试PDFBox时:http://stackoverflow.com/questions/7063324/extract-image-from-pdf-using-java。 – PeterMmm
这是伟大的!我会尝试 。谢谢!!! – Ron