3

特定の PDF で、次のコマンドを実行すると:

gs -dSAFER -dBATCH -dNOPAUSE -dQUIET -dFirstPage=1 -dLastPage=1 -sDEVICE=pdfwrite -sOutputFile=output.pdf input.pdf

次のエラーが表示されます。

GPL Ghostscript 8.71: Warning: 'loca' length 188 is greater than numGlyphs 93 in the font MGOXZX+Arial-BoldMT.

このエラーの意味と問題の解決方法について何か考えはありますか?

4

1 に答える 1

3

まず、Ghostscriptはこれを「エラー」として宣言しませんでしたが、「警告」として宣言しました。それはかなりの違いです。

次に、GhostscriptにPDF入力の最初のページを出力するように依頼しました。うまくいきましたか?output.pdfとinput.pdfの最初のページを比較すると、目に見える違いがありますか?

第三に、本当に問題がある場合は、実行しているGhostscriptのバージョンを示す必要があります。最新のものは8.71です。


更新:もちろん、StackOverflowNewbieは、警告メッセージを引用することで、Ghostscriptのバージョンをすでに示唆していました...

「警告」とは、出力ファイル(それ自体はまだ有効なPDFです)に問題がある可能性があることを意味しますが、確認することをお勧めします。

「エラー」とは、出力に確かに問題があり、Ghostscriptがそれ以降のすべての処理を中止することを意味します。出力は有効なPDFでさえない可能性が非常に高いです。

問題をさらにデバッグするには、さまざまな方法があります。ただし、問題のファイルが表示されない場合は、釘を打つアドバイスをすることはできません。StackOverflowNewbieは、出力ページが入力とは異なって見えることを報告します。

使用するハンマーは次のとおりです-dDEBUG。コマンドラインに追加します。

gs \
  -sOutputFile=output.pdf \
  -dDEBUG \
  -dLastPage=1 \
  -sDEVICE=pdfwrite \
   input.pdf

警告!これにより、コンソールに大量のstderr/stdout出力が生成される可能性があります。

正確な問題が根付いている可能性がある場所をすでに知っているか、特定の手がかりがある場合(入力PDFと出力PDFの視覚的な違いを見ると、おそらく直接推測できます)、(-dDEBUGの代わりに)を使用して問題を絞り込むことができます。次のいずれかを順番に:

 -dPDFDEBUG      # (debug PDF Interpreter)
 -dPDFWRDEBUG    # (debug PDF Writer)
 -dTTFDEBUG      # (debug TTF Fonts)
 -dCCFONTDEBUG   # (debug compiled-in Fonts)
 -dFAPIDEBUG     # (debug Font API)
 -dCFFDEBUG      # (debug CFF Fonts)
 -dCMAPDEBUG     # (debug CMAP)
 -dDOCIEDEBUG    # (debug CIE color)
 -dSETPDDEBUG    # (debug setpagedevice)
 -dSTRESDEBUG    # (debug Static Resources)
 -dVGIFDEBUG     # (debug ViewGIF)
 -dVJPGDEBUG     # (debug ViewJPEG)
 -dINITDEBUG     # (debug Initialization)
 -dEPSDEBUG      # (debug EPS handling)
 -dPDFOPTDEBUG   # (debug PDF Optimizer/Linearizer)

また、警告にはフォントが記載されているため、最初に、入力ページと出力ページの両方Arial-BoldMTのフォントの埋め込みのステータスをとの助けを借りて確認する必要があります。pdfinfopdffonts

 pdfinfo -f 1 -l 1 -box input.pdf
 pdfinfo -box output.pdf
 pdffonts -f 1 -l 1 input.pdf
 pdffonts output.pdf

Update2:

さらに調査するために、元のPDFからフォントを抽出してみることができます。(これを行う方法がわからない場合は、「PDFからフォントを抽出してさらに分析するにはどうすればよいですか?」「フォントの内部障害を調査するにはどうすればよいですか?」など、新しい個別のSO質問をしてください。 )

于 2010-09-17T07:41:45.430 に答える