1

約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

これらの大きなファイルの回避策はありますか?ページ1のサムネイルを4MBもの大きさからプルする必要があります。

以下のカートごとに、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
4

2 に答える 2

1

ImageMagickconvertは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(このような新しいファイルを消費する必要があります)も現在のバージョンにアップグレードすることをお勧めします。

于 2012-07-26T21:08:59.520 に答える
1

悪いニュース!問題のあるPDFを使用してオンラインコンバーターで遊んでいたところ、「不正なPDF」エラーが発生しました。すべてのPDFはAcrobatで開きますが、問題のあるPDFのいくつかを取り出し、Acrobat9を使用して再保存しました。サムネイルが問題なく作成されているのを見てください...

したがって、この問題は、造船所がPDFの作成に使用したソフトウェアに関係していました。

于 2012-07-26T22:26:49.830 に答える