2

我想创建将 pdf 文件的第一页转换为 jpg 图像的 php 页面。我有这些代码。

exec('convert -density 300 "24.pdf"[0] "24-1.jpg"', $output); print_r(array_values($output));

它不起作用。我已经测试了以下代码(使用命令提示符和 php)并且效果很好。执行('DIR',$输出);print_r(array_values($output)); //检查命令

执行('转换',$输出);print_r(array_values($output)); //检查imageMagick

Exec('convert -transverse 22.jpg 22-1.jpg', $output); print_r(array_values($output)); //检查imageMagick函数

但是当我尝试这个命令时

Exec('convert -transverse 22.pdf[0] 22-1.jpg',$output); print_r(array_values($output)); //用pdf检查imageMagick函数

它不起作用,但以上所有命令都在命令提示符下工作。似乎 imageMagik 运行良好,但 ghostscript 与 php 有问题。请你告诉我为什么ghostscript不能与php一起使用。

我正在使用 Window 7 Ultimate、IIS7.5 和 PHP 5.3。ImageMagick-6.8.7-Q16 ghostscript 9.10

感谢和问候穆罕默德谢赫

4

3 回答 3

1

尝试使用这个

exec("<full path to binary> '-dNOPAUSE' '-sDEVICE=jpeg' '-r<resolution>'
     '-g<dimensions>' '-dUseCIEColor' '-dTextAlphaBits=4' '-dGraphicsAlphaBits=4'
     '-o<where you want the image stored>' '-dJPEGQ=<quality - I used 90>'
     '<pdf file to resize>'", $outputArray);

如果占位符是使用变量填充的,那么变量——比如$resolution——直接进入命令,例如-r$resolution.

于 2016-01-28T22:22:30.697 回答
0

在我的情况下,我尝试使用 imagmagick 使用 convert 从 PDF 中提取第一张图像,但它没有用,所以我使用 Ghostscript 和下面的脚本,它在网络服务器中完美运行:

gs -sDEVICE=jpeg -o d:/output.jpg -dFirstPage=1 -dLastPage=1 -dNOPAUSE -dJPEGQ=100 -dGraphicsAlphaBits=4 -dTextAlphaBits=4 -r150 -dUseCropBox -dUseTrimBox d:/input.pdf

但是在测试了很多ghostscript ver之后,即使是最新的,我发现9.06是最稳定的ghostscript ver

于 2013-09-30T10:38:57.447 回答
0

起重机正确答案的关键部分是“二进制的完整路径”。由于某种原因,Apache 没有获取 windows PATH 环境变量,我找到的解决方案是在双引号之间写入 gs 可执行文件的完整路径(如果其中有空格)。

于 2020-05-05T19:13:42.333 回答