著者 Mark Stephens (IDRsolutions) 翻訳 BuildVu日本チーム
PDFと連携するソフトウェアを開発するとき、しばしばPDFファイルの中味を見たり、内部構造を確認したくなります。PDF規格はテキストとバイナリが混在するので、テキストエディタで開けないこともあります。そもそもPDF規格は複雑です。そこで、PDFの内部構造を“理解”したうえで、各オブジェクトの内容を表示できるツールを使う必要があります。
RUPS
RUPSはiText社が提供するツールで、PDFファイルを開いたり、PDFオブジェクトのデータを見ることができます。GUIで操作できるのでわかりやすく、PDFオブジェクトの奥深くまで調べる機能があります。PDF関連ソフトウェアの開発や、手持ちのPDFの内部構造/データを確認する際の手間と時間を大きく節約できるツールです。
RUPS iText社 (オーブンソース、試用後は有償)
こちらからダウンロードできます。
https://itextpdf.com/products/rups
たとえば、下記のPDFファイルをRUPSで見てみましょう。
RUPSではタブ形式でオブジェクトが整理され、いろいろなやり方でオブジェクトを表示できます(下図)。例えばPDFのメイン画像のXobjectを見たければ、左タブのXobjectをクリックします。すると下部の右ペインに画像が、左ペインにオブジェクトに関する情報が表示されます。
このPDFファイルは、中味をテキストエディタで見ることができるものでした(下図)。しかしこれでは、ファイル構造やオブジェクトの詳細をひと目で理解することはできません。やはりRUPSのようなツールを使うべきでしょう。
PDFXplorer
PDFXplorerは、O2 Solutions社の提供するフリーのPDF解析ツールです。Windows専用のコンパクトなフリーウェアで、PDFの内部構造をツリー形式で表示します。
PDFXplorer O2 Solutions社 (フリーウェア、無料)
こちらからダウンロードできます。
https://www.o2sol.com/pdfxplorer/overview.htm
あるPDFファイルをテキストエディタとPDFXplorerで開いてみました。
こちらがテキストエディタで開いたPDFファイルです
こちらがPDFXplorerで開いたPDFファイルです
PDFXplorerでは、PDFオブジェクトのそれぞれの属性を表に似た形式で表示します。タブから操作を選択しながら、PDFファイルのあちこちに移動してデータを見たりコピーしたりできます。
例えばPDFファイルに組み込まれているJavaScriptが扱うオブジェクトはどれかを調べたり、PDFファイル内の画像データをコピーしたいとき、PDFXplorerを使えばお手軽に作業できます。
取り扱い製品について
PDF規格は複雑なうえに、過去からの積み重ねで非常にわかりにくくなっています。PDF連携ソフトウェアの開発では、英国IDRsolutions 社のPDF関連製品(変換ツール、ライブラリ、ソフトウェア部品など)を、ぜひご検討ください。
IDRsolutions はPDF関連ツールを20年以上に渡って開発・提供し続けています。PDF分野の老舗企業として、世界中の企業や公的機関にご活用いただいています。
日本では株式会社インターワークがIDRsolutions社の日本総代理店として取り扱っていますので、お気軽にご相談ください。
VIEWING PRODUCTS

PDFをHTML5やSVGに変換

PDFのフォームをHTML5に変換
SDK PRODUCTS

PDFファイルの表示、変換、抽出

多くの画像ファイル形式を読み書き、変換、操作、処理