我通常以这种方式从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
答案 0 :(得分:1)
添加-verbose标志。它会为您提供各种额外信息 我怀疑是导致您的问题的PDF文件的版本。 ImageMagick使用Ghostscript处理PDF。我不确定目前支持哪种版本的PDF Ghostscript,但大多数开源工具都不能处理最新版本的PDF文件。
编辑:
我想我应该添加这个注释,不确定您使用的exec
或您使用的操作系统使用的脚本语言,但您可能需要解析错误流以从命令中获取信息。不确定详细输出是否写入错误流,但我很确定错误信息(无效的文件格式等)被写入错误流。
答案 1 :(得分:1)
我发布了一篇关于如何在http://www.jpedal.org/PDFblog/2010/09/how-do-i-find-out-the-pdf-version-used/找到PDF文件中使用的PDF版本的博客文章