アプリケーションの一部として PDF から画像を生成するために使用Ghostscript 9.05
しています (Java のプロセスとして実行)。
最近、Linux ボックスでいくつかの PDF から画像への変換が次のエラーで失敗するという問題に遭遇しました。
**** This file had errors that were repaired or ignored.
**** The file was produced by:
**** >>>> Acrobat Distiller 8.3.1 (Macintosh) <<<<
**** Please notify the author of the software that produced this
**** file that it does not conform to Adobe's published PDF
**** specification.
各ページで次のようなエラーがスローされます。
**** Warning: File has insufficient data for an image.
%%BoundingBox: 77 36 797 1082
%%HiResBoundingBox: 77.760003 36.720001 796.320030 1081.440041
Page 141
warning: ignoring invalid option raw
error: cannot decode code stream
unable to decode JPX image data.
ただし、同じ変換を Win7 マシンでローカルに実行すると、エラーは発生しません。
短くて狭いのは「PDFを返送して、動作するPDFを送ってもらう」ことであることは知っていますが、なぜこれがLinuxボックスで失敗するのにエラーなしで成功するのか(そしてエラーのない画像を生成するのか)について興味をそそられます) Windows マシンで?
何か案は?
Linux と WINdows のバージョンには大きな違いがある可能性があるため、現時点でバグ レポートを開くのは気が進まないのですが、私はそのことを知りません。
アップデート
LinuxボックスでGhostscriptがどのように構築されているかを調べた後(Ubuntu 12.04 64ビット長期サポートリリースを実行しています)、次の情報を収集しました。
jpeg2000 操作のために、Ghostscript は JasPer JPEG-2000 ランタイム ライブラリ バージョン 1.900.1-13 (JPEG-2000 Part-1 の ISO 参照実装) を使用しています。
JasPer は libjpeg-turbo8 ライブラリを使用して構築されています。
ジャスパーのサイトによると
JasPer ソフトウェアは、JPEG-2000 Part-1 コーデックの公式リファレンス実装として、JPEG-2000 Part-5 標準 (つまり、ISO/IEC 15444-5) に含まれています。
Ghostscript は、JasPer を使用することが知られているプロジェクトの 1 つとして挙げられています。Ubuntu は、ISO リファレンス実装である JasPer を使用しているようです。Ghostscript の Ubuntu パッケージ ソースには、openJPEG ではなく、ビルドの依存関係として JasPer (libjasper-dev) がリストされています。[ソース]
現時点では、異なるバージョンの Linux を試して、ghostscript のバージョンをビルドしてテストするしか方法がないようです。