CamlPDFで実装されている機能について
概観
サイトにも簡潔に書かれていますが,CamlPDFはPDFファイルを編集するための比較ローレベルなライブラリです。したがってこのライブラリだけで,例えばPDF帳票を生成するアプリを作成することは不可能ではないにしろ非常に大変なことになると思います。
ただ,機能は低レベルですが,一つ一つのモジュールが手抜きなく実装されている印象です。
主なモジュールの機能
主なモジュールで実装されている機能は以下の通りです。
- PdfDoc
- PDF文書を抽象化したモジュールです。
- PdfPages
- PDF文書内の「ページ」を抽象化したモジュールです。
- PDFRead
- PDFファイルを読み込み構造を解析します。読み込んだ結果として,PdfDocが作成されます。
- PDFWrite
- PdfDocの内容をファイルに書き出します。このとき,「線形化PDF(Webに最適化)」の状態で出力することもできます。
- PDFCodec
- ストリームオブジェクトに掛けるフィルタが実装されています。最も使用頻度が低いと思われるLZW形式も実装されています。
- PDFCrypt
- PDFの暗号化に必要な機能が実装されています。
- PDFText
- 主にフォントまわりの情報を解析する機能が実装されています。PDFの仕様で定義されているフォント形式・エンコーディングは一通りカバーしているようです。CFF形式のバイナリデータからType1フォントのグリフを抽出して,Type3形式に変換する機能まで実装されています。ただし,苦労して抽出したフォント情報を利用して何ができるかと言えば,文字コードのエンコーディング機能ぐらいしか提供されていません。
- PDFImage
- ストリームとして格納されている画像データからRGB値を取り出します。ただし,JPEG, JPEG2000, JBIG2などの非可逆画像形式には未対応のようです。
- PDFFun
- 「関数」が実装されています。驚いたことに「タイプ4(PostScript計算)関数」まで実装されているようです。関数はPDFをレンダリングしようと思わない限り必要ないはずですが,きちんと実装されています。