ImageMagick转换错误:/ resolvecheck在resolveR中,PDF大于600KB

时间:2012-07-26 20:52:04

标签: pdf imagemagick thumbnails ghostscript

在大于约600KB的PDF上使用此命令时

<? passthru("convert -verbose -scale '200x200+0+0>' ".$pdf."[0] $image"); ?>

我收到此错误输出:

ERROR: /rangecheck in resolveR
Operand stack:
   PageCount   4763294   47   46
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1   3   %oparray_pop   1   3   %oparray_pop   1   3   %oparray_pop   --nostringval--   --nostringval--   --nostringval--   --nostringval--   --nostringval--   --nostringval--   --nostringval--
Dictionary stack:
   --dict:1129/1686(ro)(G)--   --dict:0/20(G)--   --dict:107/200(L)--   --dict:107/200(L)--   --dict:104/127(ro)(G)--   --dict:241/347(ro)(G)--   --dict:16/24(L)--
Current allocation mode is local

任何人都有这些较大文件的解决方法吗?我需要从一些大小为4 MB的页面中拉出1页缩略图。

下面的Per Kurt我也尝试直接访问gs:

<?
    $image = "3.jpg";
    $pdf = '3/ABS_Survey_for_Load_Lines_CIB_100.pdf';
    if (!file_exists($image)) {
        echo passthru("gs \
-sOutputFile=$image \
-sDEVICE=jpeg \
-g200x200 \
-dPDFFitPage \
 $pdf");
    }
?>

这给出了同样的错误:

ESP Ghostscript 815.02 (2006-04-19)
Copyright (C) 2004 artofcode LLC, Benicia, CA.  All rights reserved.
This software comes with NO WARRANTY: see the file PUBLIC for details.
ERROR: /rangecheck in resolveR
Operand stack:
   PageCount   4763294   47   46
Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1   3   %oparray_pop   1   3   %oparray_pop   1   3   %oparray_pop   --nostringval--   --nostringval--   --nostringval--   --nostringval--   --nostringval--   --nostringval--   --nostringval--
Dictionary stack:
   --dict:1122/1686(ro)(G)--   --dict:0/20(G)--   --dict:107/200(L)--   --dict:107/200(L)--   --dict:104/127(ro)(G)--   --dict:241/347(ro)(G)--   --dict:16/24(L)--
Current allocation mode is local

2 个答案:

答案 0 :(得分:1)

ImageMagick的convert无法打开并自行处理PDF文件。相反,它用作PDF输入Ghostscript的委托

您显示的错误是典型的Ghostscript错误消息。

要调试这个,你应该先尝试直接运行Ghostscript ,看它是否真的 Ghostscript的错误:

gs \
  -dBATCH \
  -dNOPAUSE \
  -sOutputFile=200x200px-output.jpeg \
  -sDEVICE=jpeg \
  -g200x200 \
  -dPDFFitPage \
   2000-kilobyte-input.pdf

另外,查找您拥有的Ghostscript版本:gs -v。 (您应该使用最新版本,例如9.05)


<强>更新

自你的Ghostscript版本(ESPGS 8.15.2)......

  • ...已超过6年(当时PDF-1.6和Acrobat 7是PDF的最新版本),
  • ...但由于您很可能正在处理最新的PDF格式(PDF-1.7和Acrobat X现在是最新的),

...建议您将Ghostscript(必须使用此类新文件)升级到当前版本。

答案 1 :(得分:1)

坏消息!我正在使用问题PDF玩在线转换器,它给出了“糟糕的pdf”错误。所有的PDF都会在Acrobat中打开你的想法,但是 - 我带了一些问题并用我的Acrobat 9重新保存它们并且看到缩略图被创建没有问题......

所以这个问题与造船厂用来制作PDF的软件有关。