PDF text API reference
PDF text APIリファレンスは、PDF文書内のテキストコンテンツを抽出、操作、レンダリングするためのプログラマティックインターフェースを提供します。
PDF text APIリファレンスは、PDF文書内のテキストコンテンツを抽出、操作、レンダリングするためのプログラマティックインターフェースを提供します。これらのAPIにより、開発者はPDF仕様 ( Citation: N.A., 2020 (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) で定義されているテキストオブジェクト、フォント、文字エンコーディングを扱うことができます。Text APIは、文書構造と書式を維持しながらPDF内のテキストコンテンツを読み取り、検索、または変更する必要があるアプリケーションにとって不可欠です。
PDF text APIリファレンスは、開発者がさまざまな抽象化レベルでPDFファイル内のテキストコンテンツを操作できるようにするプログラミングインターフェース、メソッド、関数の集合です。これらのAPIは、PDF標準 ( Citation: N.A., 2020 (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html ) で規定されているテキスト抽出操作、テキストの配置とレイアウト情報、フォントプロパティ、文字エンコーディングマッピングへのアクセスを提供します。
PDF text APIは通常、コンテンツストリーム内のテキストオブジェクトに対して動作します。コンテンツストリームには、ページ上でのテキストの表示方法を定義するオペレータとオペランドが含まれています。単純な文字列操作とは異なり、PDF text APIはType 1やTrueTypeフォント、文字エンコーディングスキーム(UnicodeのためのWinAnsiEncodingやIdentity-Hなど)、テキストマトリックスによるグリフ配置、マルチバイト文字シーケンスなどの複雑な機能を処理する必要があります。
これらのAPIは、ページ操作、注釈、フォームフィールドではなくテキスト操作に特化している点で、ドキュメントレベルのAPIとは異なります。また、生のテキストコンテンツではなく文書の論理構造を扱うTagged PDF API ( Citation: PDF Association, 2023 PDF Association(2023). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/ ) とも異なります。
PDF text APIは、文書コンテンツをプログラムで処理するアプリケーションを構築する開発者にとって重要です。一般的な使用例には、検索機能の実装、インデックス作成や分析のためのデータ抽出、PDFの他の形式への変換、アクセシビリティコンプライアンス ( Citation: N.A., 2014 (N.A.). (2014). Document management applications — Electronic document file format enhancement for accessibility — Part 1: Use of ISO 32000-1 (PDF/UA-1) . International Organization for Standardization Retrieved from https://www.iso.org/standard/64599.html ) の確保などがあります。
WebおよびJava開発者にとって、text APIは文書全体を視覚的にレンダリングすることなくサーバーサイドでのPDF処理を可能にします。この機能は、請求書処理、契約分析、またはPDF文書から情報を抽出して分類する必要があるコンテンツ管理システムなどの自動化ワークフローに不可欠です。
Text APIを理解することで、開発者はエンコーディングの問題による誤った文字抽出、多段組レイアウトでの読み順の喪失、合字や特殊文字の適切な処理の失敗などの一般的な落とし穴を回避できます。これらの課題は、下流のアプリケーションにおけるデータ品質に直接影響します。
PDF text APIは通常、いくつかの機能レイヤーを提供します:
テキスト抽出: APIは、テキスト表示オペレータ(Tj、TJ、’、")とそのオペランドを解析することで、PDFコンテンツストリームからテキストコンテンツを読み取ります。APIは、フォントのエンコーディングを使用して文字コードをデコードし、アプリケーションで使用するためにUnicodeに変換する必要があります。
配置とレイアウト: Text APIは、文字間隔、単語間隔、水平スケーリング、テキストライズを制御するテキストマトリックス(Tm)とテキスト状態パラメータを公開します。この情報により、開発者はページ上の各文字またはテキストフラグメントの幾何学的位置を決定できます。
フォント情報: APIは、フォントタイプ(Type1、TrueType、Type3)、埋め込まれたフォントプログラム、文字マッピングテーブル(CMap)を含むフォント辞書へのアクセスを提供します。これにより、適切なレンダリングが可能になり、抽出時に正確な文字識別が保証されます。
構造ナビゲーション: 高度なtext APIは、Tagged content ( Citation: PDF Association, 2023 PDF Association(2023). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/ ) をトラバースし、物理的な外観順序ではなく構造ツリーで定義された論理的な読み順に従うことができます。これは、アクセシビリティ ( Citation: N.A., 2014 (N.A.). (2014). Document management applications — Electronic document file format enhancement for accessibility — Part 1: Use of ISO 32000-1 (PDF/UA-1) . International Organization for Standardization Retrieved from https://www.iso.org/standard/64599.html ) や複雑なレイアウトの文書にとって特に重要です。
ほとんどのtext APIは、コンテンツストリームオペレータへの低レベルアクセスと、ページからすべてのテキストを抽出したり特定のフレーズを検索したりするような一般的なタスクのための高レベルの便利メソッドの両方を提供します。
- Content Stream(コンテンツストリーム)– テキストを含むページコンテンツの外観を定義する命令のシーケンス
- Font Dictionary(フォント辞書)– 文書で使用されるフォントの特性とエンコーディングを定義するPDFオブジェクト
- Tagged PDF – コンテンツの構成と読み順に関するセマンティック情報を含むPDF文書構造
- Text Object(テキストオブジェクト)– BTとETオペレータで囲まれた、テキスト表示操作を含むコンテンツストリームのセクション
- Character Encoding(文字エンコーディング)– PDF内の文字コードとそれが表す文字との間のマッピング
- (N.A.) (2020)
- (N.A.). (2020). Document management — Portable document format — Part 2: PDF 2.0 . International Organization for Standardization Retrieved from https://www.iso.org/standard/75839.html
- PDF Association (2023)
- PDF Association(2023). Retrieved from https://pdfa.org/resource/tagged-pdf-best-practice-guide-syntax/
- (N.A.) (2014)
- (N.A.). (2014). Document management applications — Electronic document file format enhancement for accessibility — Part 1: Use of ISO 32000-1 (PDF/UA-1) . International Organization for Standardization Retrieved from https://www.iso.org/standard/64599.html
