【发布时间】:2010-12-27 20:13:15
【问题描述】:
我通常以这种方式从 PDF 文件创建 jpg 缩略图:
exec('convert -contrast ./xyz.pdf[0] ./xyz.jpg');
另外,我也可以使用这种变体来创建缩略图:
exec("/usr/bin/gs -q -dBATCH -dMaxBitmap=300000000 -dNOPAUSE -dSAFER -sDEVICE=jpeg -dJPEGQ=100 -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -r72 -dFirstPage=1 -dLastPage=1 -sOutputFile=./xyz.jpg ./xyz.pdf -c quit");
现在大部分缩略图的创建都没有任何问题。但总有一些情况根本没有创建缩略图。无论我使用两种变体中的哪一种。 PDF 文件似乎“正常”(至少我可以毫无问题地打开和查看它们)。
有没有其他方法可以获得可行的缩略图(通过脚本)?
非常感谢
我收到的错误信息是:
[0] => Error: /limitcheck in --run--
[1] => Operand stack:
[2] => --nostringval-- --dict:9/18(L)-- --nostringval--
[3] => Execution stack:
[4] => %interp_exit .runexec2 --nostringval-- --nostringval-- --nostringval-- 2 %stopped_push --nostringval-- --nostringval-- --nostringval-- false 1 %stopped_push 1905 1 3 %oparray_pop 1904 1 3 %oparray_pop 1888 1 3 %oparray_pop --nostringval-- --nostringval-- 2 1 1 --nostringval-- %for_pos_int_continue --nostringval-- --nostringval-- --nostringval-- --nostringval-- %array_continue --nostringval-- false 1 %stopped_push --nostringval-- %loop_continue --nostringval--
[5] => Dictionary stack:
[6] => --dict:1159/1684(ro)(G)-- --dict:2/20(G)-- --dict:97/200(L)-- --dict:97/200(L)-- --dict:107/127(ro)(G)-- --dict:275/300(ro)(G)-- --dict:22/25(L)-- --dict:4/6(L)-- --dict:22/40(L)-- --dict:1/1(ro)(G)-- --dict:1/1(ro)(G)--
[7] => Current allocation mode is local
[8] => Last OS error: 2
【问题讨论】:
-
您是否碰巧检查了无法使用的 PDF 是哪个 PDF 版本? (只需在 Acrobat 中打开并查看首选项)。另外,你在什么操作系统上运行它?如果这是 Windows,则操作系统错误 2 是“找不到文件”
-
刚刚注意到您的 GS 调用命令行是 /usr/bin/gs,所以我假设您的操作系统是 *nix 风格的。在这种情况下,操作系统错误代码 2 是找不到文件。我仍然怀疑该错误是 PDF 版本问题,但无论如何我都会问这个问题,您是否总是使用
./xyz.pdf[0]运行转换命令,或者您有时是否将 0 替换为不同的页码(例如 5)。 5 对应于第 6 页,如果 PDF 少于 6 页,则此操作将失败并出现文件未找到错误。
标签: pdf imagemagick ghostscript