2

使用できないフォントが埋め込まれたPDFがあります。現在、GhostScriptを使用して、次の2つのことを実行しようとしています。

  • PDFのファイルサイズを最小化します:

    gswin32c -dSAFER -dBATCH -dNOPAUSE -dQUIET -sDEVICE = pdfwrite -sOutputFile = output.pdf input.pdf

  • PDFをPNGに変換する(スーパーサンプル、他のサムネイルの作成に使用):

    gswin32c -dSAFER -dBATCH -dNOPAUSE -dQUIET -dFirstPage = 1 -dLastPage = 1 -r288 -sDEVICE = png16m -sOutputFile = output.pdf input.pdf

上記は、スキャンしたドキュメントで作業する場合にうまく機能します。しかし、フォントが埋め込まれたPDFに対してそれらを実行すると(PDFはアプリケーションによってオンザフライで生成されます)、失敗します。これが私が得るエラーです:

GPL Ghostscript 8.71: Warning: 'loca' length 274 is greater than numGlyphs 136 i
n the font UUGHDE+ArialMT.
GPL Ghostscript 8.71: Warning: 'loca' length 274 is greater than numGlyphs 136 i
n the font UUGHDE+ArialMT.
GPL Ghostscript 8.71: Warning: 'loca' length 188 is greater than numGlyphs 93 in
 the font UUGHDE+Arial-BoldMT.
GPL Ghostscript 8.71: Warning: 'loca' length 188 is greater than numGlyphs 93 in
 the font UUGHDE+Arial-BoldMT.

GhostScriptの他に、PDFTKとImageMagick(GraphicsMagickに置き換えられる可能性があります)にもアクセスできます。私は他の解決策にもオープンです。

開発はWAMP上にあります。展開はLAMPです。

提案?

4

1 に答える 1

4

PDF内で使用されているフォントは、OpenTypeフォントのようです。これらのPDFを作成したソフトウェアは、フォントをサブセット化したようです。このソフトウェア(「PDFをオンザフライで生成する」-Ghostscriptでもありますか?!?)によるフォントの埋め込みとサブセット化中に、仕様に100%準拠しないという問題が発生したようです。

「loca」テーブルは、OpenTypeフォントの説明の一部です。これらは、すべてのグリフ位置のインデックスを表します。

ここで、これらの完全ではない「コーシャ」PDFをGhostscriptで処理します。Ghostscriptは警告を出しますが、エラーはありません。

GSエラーは通常、「それ以上の処理を中止します。問題を回避したり、この破損したファイルを修復したりすることはできません。すでに出力ファイルを書き込んでいると、役に立たなくなります。」を意味します。

GSの警告は通常、「問題が発生しました。ただし、入力の処理と回避を続行します。有効な出力ファイルを作成しました。ただし、特に忠実度を確認することをお勧めします。」

表示される警告(エラーではありません!)は、次のことを意味します。

  1. 問題のサブセット化されたフォントの1つは、表によると、グリフの数が188であると主張しています。
  2. しかし実際には、実際のフォントの説明には、93個のグリフ形状の定義しか含まれていません。
于 2010-09-23T12:18:11.957 に答える