Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用GhostScript将pdf转换为jpg_Java_Ghostscript_Ghost4j - Fatal编程技术网

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时:。那太好了!!!!我试试看。谢谢