関連するアンテナハウスウェビナー動画
よく使うPDFをより扱いやすく! PDF Tool APIの新機能を利用したPDFのクオリティアップ
- 日時:2021年9月21日(火) 16:00〜16:45
- 概要:PDF Tool APIは、PDFの加工や編集を行うライブラリです。利用用途に合わせてPDFを編集する際に役立つV7.0の新機能、強化された機能を紹介します。
- YouTube動画:(リンクをクリックすると、別タブで動画ページが開きます)
更新日: 2021/6/30
PDFの最新仕様書であるISO 32000-2でオブジェクトという用語が頻繁に使われています。ここでオブジェクトという言葉の意味合いは、非常に幅広くなっています。PDFファイル内の情報の最小単位は配列、ブール値、辞書、整数、名前、文字、ストリームといった基本オブジェクトです。PDFリーダー(PDF閲覧ソフト)やPDFライター(PDF作成ソフト)を自分で開発するときには、PDFファイルの中の基本オブジェクトを読み書きしなければなりません。しかし、すでにあるPDFファイルの中から自分の必要とする情報を取り出したり、あるいは編集して書き込んだりするだけなら、基本的オブジェクトを自力で読み書きする必要はありません。
アンテナハウスの『PDF Tool API』など、さまざまな開発者向けのPDFツール・ソフトウェア開発キット(SDK)を使うと、プログラムでPDFを加工・利用できます。こうしたツール(SDK)は基本オブジェクトではなく、主に高度なオブジェクト(本記事では「抽象オブジェクト」といいます)を読み書きするようになっています。
PDFファイルの内部には非常に多種類の抽象オブジェクトが一定のファイル構造のもとに保存されています。次にその主なものを紹介します。
文字、図形(パス)、イメージ画像、外部オブジェクトなどは、画面に表示したり、印刷したりする文字や画像に対応するオブジェクトです。こうしたコンテンツ情報こそがPDFファイルの存在意義です。従って、PDFファイルを対象にするプログラムの中では、PDFのコンテンツ情報を取り出したり、編集したりすることのニーズが一番多いことは言うまでもないでしょう。コンテンツを表す抽象オブジェクトについては、次の節でもう少し詳しく説明します。
PDFに追記するコメントなどを表す注釈、インタラクティブな表示のためのハイパーテキストを表すリンク情報、PDFファイルのナビゲーションに便利なしおりなどが該当します。これらの情報は、すでにあるPDFファイルのコンテンツに影響を与えることなく、後から付加したりできます。また、削除・取り除いてもコンテンツの表示・印刷に影響がありません。
注釈、リンク、しおりについては、PDF資料室にすでに簡単な説明があります。
PDFの内容は縦・横の絶対寸法をもつページの上に記述されます。ページの並び順はページツリーで表現され、ページツリーの葉がページオブジェクトです。
ページオブジェクト辞書には、ページの内容、ページの内容が使用する資源、ページに関連する属性、サムネイルイメージやページの注釈、ページ大きさや回転しているかなどが登録されます。
メタ情報、フォント資源、カラー資源、文字コード情報(変換用テーブルなど)、セキュリティ情報、その他のオブジェクトが該当します。
PDFのコンテンツを表す抽象オブジェクトはグラフィック・オブジェクトと総称します。ISO 32000-2では、グラフィック・オブジェクトが次のように5種類に分類されています。
PDFの図形はパスオブジェクトで表されます。パスオブジェクトは、直線、長方形、および3次ベジエ曲線(総称してパスという)で構成される任意の形状です。パスオブジェクトは、パスを描くか、パスで囲まれた領域を塗りつぶすか、パスをクリッピング境界として使用するか、またはこれらの操作の組み合わせを指定する1つ以上のペイント演算子によって構成されます。
PDFでは文字をフォントのグリフで表すのが基本です。テキストオブジェクトは、グリフのシーケンスを識別する1つ以上の文字列とテキストオペレータで構成されています。テキストオペレータにはテキストを表示したり、位置決めしたり、テキストの状態を決めたり、他のパラメータがあります。
テキストオブジェクトについては、PDF資料室にいくつかの記事があります。プログラマーの立場では次の記事が参考になるでしょう。
名前付きリソースとして扱うひと固まりのデータを外部オブジェクト(XObject)と総称します。XObjectにはいくつかのタイプがあります。
画像ファイルをPDFに埋め込んだ場合は、image XObjectになります。これに対して、インライン画像オブジェクトは、特別な構文を使用して、小さな画像のデータをPDFのコンテンツ内に直接表現します。
シェーディングオブジェクトは、幾何学的形状内の位置の関数として色を表現するものです。
PDFのコンテンツやその他の情報について、取り出したり、設定するために自分でゼロからプログラムを作る必要はありません。例えば、アンテナハウスの『PDF Tool API』を使えば、主なコンテンツ抽象オブジェクトに関する情報を簡単に扱えます。ただし、すべてのオブジェクトについて任意のあらゆることができるわけではありませんので、詳しくは次の製品情報ページをご参照ください。