パーソナルビジネスソフトとお役立ち情報のサイト
PDFlib TETの概要

TETとは

PDFlib Text Extraction Toolkit (以下TETと呼ぶ)は、PDFファイルに含まれるテキスト情報を正確に抽出できる開発者向け製品です。TETはライブラリおよびコマンドラインツールとして提供されます。TETはPDF文書に含まれるテキストをUnicode文字列、詳細なグリフ、フォント情報として生成することが可能です。

TETを利用することでPDF文書のテキストをUnicode文字列としてページ上の位置情報と共に取得することが可能になります。TETは基本的なテキスト検索に加え、影や強調表現など不要なテキストを取り去る高度なコンテンツ処理アルゴリズムを提供します。また、pCOSインターフェースを使用してメタデータ、ハイパーテキストなどの任意のオブジェクトをPDF文書から取得することができます。

TET2.2の新機能

以下は、TET2.2で追加・改善された機能です。
  • 前バージョンまでのTETでは対応できなかった不正なPDF文書を解読する修復モード
  • AES暗号化文書のサポート(適正なパスワード指定が前提)
  • 記事スレッド(Article Thread)単位でのテキストの抽出(コマンドラインツール)
  • Perl言語バインディング
  • 抽出、修復アルゴリズムの改善
  • ユニコードマッピングの強化
  • Wordfinderの改善
  • その他不具合修正

TETの用途

TETの用途としては以下のようなものが考えられます。
  • PDF文書処理のための検索エンジンの実装
  • PDF文書からのテキスト抽出(データベースへの格納に利用等)
  • PDFテキストコンテンツの他フォーマットへの変換
  • 複数のPDF文書に対し、その内容に応じて異なる処理を行う
  • PDFページテキストコンテンツのXMLへの変換(他ツールでの再処理に利用するなど)

サポートされるPDF

TETは下記のように入力として想定されるPDF文書のほとんどに対応することができます。
  • PDF 1.7(Acrobat 8)までの全てのPDF文書
  • 全てのフォント、エンコーディング:14のベースフォント、TrueType、PostScript、OpenType、CIDフォント
  • 40ビット、128ビットの暗号化PDF文書(適切なアクセス権の設定、パスワードが必要)

Unicode

通常、PDF文書内のテキストは、Unicodeに符号化されていませんが、TETは、PDF文書のテキストをUnicodeに正規化して取り扱います。
  • TETは全てのテキストをUnicodeに変換。テキストは、C言語バインディングではUTF-8かUTF-16フォーマットとして、他の言語バインディングではネイティブUnicodeとして返されます。
  • 合字や複数文字からなるグリフは、これらを形作る一連のUnicodeキャラクタに分割
  • ベンダー特有のUnicode(CUSキャラクタ)は、可能であれば共通のUnicode領域のキャラクタにマップ
  • Unicodeにマップされないグリフは、明示的に設定されたキャラクタに置き換え

CJKサポート

TETは、中国語、日本語、韓国語のテキストの抽出をサポートします。既定のCJK CMap(エンコーディング)は全て認識されます。横書き、縦書きもサポートしています。

コンテンツ処理と単語の特定

TETは、基本的なグリフ情報の取得に使用でき、高度なコンテンツ処理アルゴリズムを提供します。
  • 重複するテキストの削除
  • 読む順序に従った段落の再結合
  • ページをまたがるテキストの再調整
  • テキスト行の再配置
  • 単語境界を取得し、文字の代わりに単語を取得
  • ハイフン付き単語の結合

幾何学的情報

TETは、ページ上の位置、グリフの幅、テキスト表示方向のようなテキストの正確な数値情報を提供します。ページ上の特定の領域を抽出の対象とする、あるいは逆に対象から除外することができます。この機能はたとえばヘッダーやフッター、マージンをを除外する場合などに有効です。

PDFオブジェクトを簡単に参照するpCOSインターフェース

TETは、任意のPDFオブジェクトを取得するためのpCOS(PDFlib Comprehensive Object System)インターフェイスを装備しています。pCOSを使用することで低レベルのPDF要素を直接扱う手間を省き、簡単な抽出インターフェースで、メタデータ、ハイパーテキストなど、PDF文書から多くの情報を取得することができます。

プログラミングとパフォーマンス

TETは、ポータビリティー、パフォーマンスと堅牢性を考慮し開発されました。TETは、マルチスレッドサーバーアプリケーションの展開に対しスレッドセーフとなっています。コア・ライブラリは、最大のパフォーマンスと最小のオーバーヘッドを実現するために高度に最適化されたCコードで開発されています。追加言語バインディングとして、COM、C、C++、Java、および.NETが用意されています。

TETコマンドラインツールとライブラリ

TETには、様々な開発環境で利用可能なライブラリ(コンポーネント)とバッチ処理に適したコマンドラインプログラムが用意されています。どちらも同様の機能が提供されますが、用途によって使い分けてください。次にどちらを選択するかのガイドラインを示します。
  • TETプログラミングライブラリは、デスクトップやサーバーアプリケーションに統合することができます。全ての言語バインディングを使用するサンプルプログラムがTETパッケージに含まれています。
  • コマンドラインツールはPDF文書のバッチ処理に適しています。コマンドラインツールではプログラミングは必要ありません。かわりに強力なオプションが用意されており、複雑なワークフローの一部として組み込むことができます。またコマンドラインツールはPDFページをUnicodeテキストと的確なキャラクタマトリックスを含むXMLに変換することができます。

TETプラグイン

PDFlib TET Plugin(TETプラグイン)は、PDF文書からテキストを抽出する無償のAcrobat用プラグインソフトウェアです。TETプラグインは、テキスト抽出ライブラリーであるTET(PDFlib Text Extraction Toolkit)の機能を簡便に使う手段を提供します。TETプラグインは、Acroabtのプラグインとして動作しますが、そのテキスト抽出機能は全てTETに基づいており、Acrobatの関数は使用していません。TETプラグインはPDFlib TETのパワーを実際に体験していただくための技術的な試みとしてご提供しています。

TETプラグインの詳細、ダウンロードについてはこちらをご覧ください。

TETの入手方法

TETは、主要なプラットフォームについては、当サイトのダウンロードページからダウンロードして試用することができます。

ダウンロードされた評価版ソフトウェアはご購入後送付するライセンスキーを適用することにより、フルバージョンの製品としてご利用いただけます。

本製品のご注文方法については、PDFlib製品の価格と購入方法をご覧ください。また機能の詳細についてはTETのマニュアルを参照ください。


(注)本記事はPDFlib社のTETデータシートを参考にして作成しています。
(Nov 17, 2005 - Mar 12, 2007)