PDFlib TET について

<< PDFlib HOWTO に戻る

$Id: index.html,v 1.4 2009-01-15 07:33:43 cz Exp $

PDFlib TET とは

PDFlib TET は PDF ファイル中のテキストを抽出することを主目的とした製品ですが、PDFlib pCOS の機能も内蔵しているため、PDF ファイルのメタデータやハイパーテキストなどの情報を取得することも可能です。

また、テキストのページ上の位置や、グリフの幅なども取得できます。

TET の試用

TET で CJK(日本語、中国語、韓国語)のテキストを抽出する場合には、CMap の設定が必要です。ただし、PDFlib で PDF を出力する場合とは違い、TET で単にテキストを抽出する場合には CMap に関する知識は一切不要で、CMap のディレクトリを指定してあげるだけのことです。CMap について知りたい場合、CMap やフォントについて の部分をご参照ください。

CMap は、TET のアーカイブファイルに同梱されています。http://pdflib.jp/ にある CMap パッケージも同じ内容なので、どちらを使っても問題ありませんが、ここでは http://pdflib.jp/ にあるものを使うことにします。

TET 同梱のものは、TET-2.2-Linux/resource/cmap にあります。このディレクトリを適当な場所にコピーしてください(以下のサンプルでは /usr/local/pdflib7/resource/cmap があるものとしています。

なお TET 2.1 ベースのものですが、日本語マニュアルが TET ダウンロードページ から入手できます。TET 2.2 で増えた新機能はそう多くない(pCOSまわりや機能強化など、見えない部分の改良が多い)ため、十二分に役に立つかと思います。

評価版の制約事項

ライセンスキーを指定していない状態の TET は、最大10 ページ/1MBまでのPDFファイルまでしか取り扱えないようになっていることを除き、全ての機能が使用可能です。そのためライセンスの購入前であっても、必要な機能が TET にあるかどうか充分に検証可能かと思います。

コマンドライン版 TET でテキストを抽出

コマンドライン版の TET(主にバッチ処理などを想定)は、非常に簡単に使うことができます。下記は、CMap ディレクトリとして「/usr/local/pdflib7/resource/cmap」を指定して、北見市の 公文書公開請求書の PDF(560-0201.pdf)テキストフローの実行サンプル(textflow_sample.pdf) 内のテキストを抽出する時の実行例です。

% TET-2.2-Linux/bin/tet --searchpath /usr/local/pdflib7/resource/cmap 560-0201.pdf
% TET-2.2-Linux/bin/tet --searchpath /usr/local/pdflib7/resource/cmap textflow_sample.pdf

抽出された結果はそれぞれ、560-0201.txttextflow_sample.txt です。

PHP による TET のプログラミング例

PHP から TET を呼び出すには、下記手順のように PHP の extension ディレクトリにライブラリをコピーして php.ini を編集する必要があります。最後に Apache を再起動して、phpinfo(); で TET のセクションがあることを確認したらインストール完了です。

% cp libtet_php.so /usr/lib/php4/20020429/

% sudo vi /etc/php4/apache2/php.ini を実行して下記行を追加

extension=libtet_php.so

プログラムから TET を利用して PDF のテキスト抽出を行う例は、extractor_j.phps です。これは TET のアーカイブファイル同梱の extractor.php をベースに、個人的に気にいらない個所を少し修正したものです。実行結果は extractor_j.result.txt です。

非常に簡単に、テキストやフォント名などが取得できることがわかると思います。

なお、このサンプルでは TET_open_page()のオプションで "granularity=line" を指定しているために行単位での抽出となっていますが、これを page(1ページのテキスト全て)やword(CJK環境では1文字ずつ)に設定することで、一度に抽出する量を変更できます。

テキストのフィルタリング

ハイフンの除去や、極端に大きい/小さい文字の無視など、TET には抽出するテ キストのフィルタリングの機能があります。詳細に関しては日本語マニュアルの オプションをご参照ください。

更新履歴

2007/08/14公開

<< PDFlib HOWTO に戻る