【问题标题】:convert each pdf page to jpg将每个pdf页面转换为jpg
【发布时间】:2016-03-23 07:41:34
【问题描述】:

我想将 pdf 的每一页转换为 jpg 文件。转换单个页面有效:

exec('/usr/local/bin/convert -density 288 -resize 50% -quality 85 -    colorspace CMYK dv.pdf[8] -colorspace RGB test.jpg');

转换所有页面不起作用:

    exec('/usr/local/bin/convert -density 288 -resize 50% -quality 85 -    colorspace CMYK dv.pdf -colorspace RGB test.jpg');

可能出了什么问题?

【问题讨论】:

  • 那是哪个“convert”?
  • 对不起,我错误地粘贴了第二个“转换”。代码已修复。问题依然存在...
  • @peter 这不是一个真正的 php 问题,因为 php 代码只是执行 convert 命令行程序,而您的问题是关于 convert,而不是 php。尝试在终端中运行您的命令并发布您在执行此操作时收到的任何错误。
  • thx,错误是:转换:Postscript 委托失败/home/httpd/docs/test/magazine/best/dv.pdf': No such file or directory @ pdf.c/ReadPDFImage/630. convert: missing an image filename /home/httpd/docs/die8test2/magazine/best/ateste.jpg'@convert.c/ConvertImageCommand/2819。跨度>
  • 但文件在那里 - 通过添加页码 dv.pdf[8] 转换单页作品

标签: imagemagick imagemagick-convert


【解决方案1】:

我无法解决问题,但我找到了替代解决方案 - 我在不使用 Imagick 的情况下执行 Ghostscript:

exec(
    "'gs' '-dNOPAUSE' '-sDEVICE=jpeg' '-dUseCIEColor' '-dTextAlphaBits=4' 
    '-dGraphicsAlphaBits=4' '-o$exportPath' '-r$res' '-dJPEGQ=$quality' '$input'",
     $output
);

【讨论】:

    【解决方案2】:

    您可以使用 imagick 来执行此操作。更多信息可以在这里找到http://php.net/manual/en/imagick.setup.php

     <?php 
        $imagick = new Imagick(); 
        $imagick->readImage('myfile.pdf'); 
        $imagick->writeImages('converted.jpg', false); 
        ?> 
    

    【讨论】:

    • 谢谢,效果很好 - 但图像的颜色与 pdf 中的不同。 pdf 是 CMYK。如何使用您的示例获得正确的颜色?
    • 如果颜色反转,请阅读用户在php.net/manual/en/imagick.setimagecolorspace.php 提供的注释,其中显示了不同的解决方法。
    • 没有变化...根据这篇文章stackoverflow.com/questions/4830478/… - php imagick 没有这样做,我需要使用 imagick 命令行来完成,就像我上面的原始帖子一样。所以问题依然存在..
    猜你喜欢
    • 2012-08-26
    • 2022-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 2021-08-15
    相关资源
    最近更新 更多