Java 如何使用GhostScript将pdf转换为jpg
这件事困扰了我整整一天下午。 我遇到了很多问题,现在我无法克服它们 我的代码:Java 如何使用GhostScript将pdf转换为jpg,java,ghostscript,ghost4j,Java,Ghostscript,Ghost4j,这件事困扰了我整整一天下午。 我遇到了很多问题,现在我无法克服它们 我的代码: public void pdf2jpg(){ try { File pdfFile =new File("c://tmp//1.pdf"); PDFDocument document = new PDFDocument(); document.load(pdfFile); SimpleRenderer renderer = new Sim
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();
}
}
public void pdf2jpg(){
试一试{
文件pdfFile=新文件(“c://tmp//1.pdf”);
PDFDocument document=新PDFDocument();
文件加载(pdfFile);
SimpleRenderer渲染器=新SimpleRenderer();
设置分辨率(300);
列表图像=renderer.render(文档);
对于(inti=0;i
我的盒子: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:无法初始化Ghostscript解释器。错误代码为-20
”
在List images=renderer.render(文档)上代码>
这里的一些帖子提到它是关于ghost4j版本的。因此,我改为0.4.6,error 20
消失,但出现了警告:读取外部参照表时出错。
在同一句话中
我想不出如何走出这片“泥泞”
非常感谢您的帮助。如果您遇到内存不足错误,我猜返回的位图内存太大
您应该尝试直接从命令行使用Ghostscript,原因有二:首先,您将能够看到是否存在有关外部参照的真实错误消息,这将表明您的PDF文件已损坏,其次,您可以合理地运行shell命令来调用GhostScript,将PDF直接呈现为JPEG格式,而不是通过内存中的位图。它可能比其他任何东西都快
gswin32c -sDEVICE=jpeg -o out.jpg input.pdf
奇怪的是,它成功地将pdf文件转换为jpg。但是错误仍然存在。java.lang.reflect.InvocationTargetException at sun.reflect.GeneratedMethodAccessor4.invoke(未知源)at sun.reflect.DelegatingMethodAccessorImpl.invoke(未知源)at java.lang.reflect.Method.invoke(未知源)。。。。原因:java.lang.OutOfMemoryError:java堆空间
。有什么问题吗。有什么建议吗?你一定要去幽灵4J吗?当不尝试PDFBox时:。那太好了!!!!我试试看。谢谢