ExtractStructuredPage
テキスト、抽出、構造化データ
説明
1 つの PDF ページをキャプチャし、その構造化テキストモデルをスキーマ 2 の JSON、セマンティック XHTML、テーブル CSV としてシリアライズします
モデルは、実際の構造ツリー順序と属性を、明示的な幾何フォールバック、段落、スタイル付きスパン、空や結合を含むテーブルと組み合わせます
構文
Delphi
Function TPDFlib.ExtractStructuredPage(Page, Format,
Options: Integer): WideString;ActiveX
Function PDFlib::ExtractStructuredPage(Page As Long, Format As Long,
Options As Long) As StringDLL
const wchar_t* DLExtractStructuredPage(int InstanceID, int Page,
int Format, int Options);
const char* DLExtractStructuredPageA(int InstanceID, int Page,
int Format, int Options);パラメータ
| Page | 1 から始まるページ番号 |
|---|---|
| Format | PDF_STRUCTURED_TEXT_JSON (0)、PDF_STRUCTURED_TEXT_XHTML (1)、または PDF_STRUCTURED_TEXT_CSV (2) |
| Options | JSON および XHTML にフォント、サイズ、色、垂直配置を含めるには 0 または PDF_STRUCTURED_TEXT_INCLUDE_STYLES (1) |
JSON 階層
{
"version": 2,
"page": 1,
"width": 612,
"height": 792,
"readingOrderSource": "tagged",
"structureComplete": true,
"warnings": [],
"blocks": [
{
"type": "paragraph",
"nodeId": 3,
"source": "tagged",
"confidence": 1,
"furniture": "none",
"furnitureSource": "",
"bbox": [
40,
50,
300,
70
],
"text": "Example paragraph",
"lines": [
{
"spans": []
}
]
}
],
"semantics": []
}ページのメタデータには readingOrderSource、structureComplete、warnings が含まれます。読み取りソースは tagged、mixed、geometric、geometric-columns です
ブロックには nodeId、source、confidence、furniture、furnitureSource、bbox が含まれ、スパンは出力テキストとともに originalText、contentEvent、nodeId、artifact を保持します
テーブルのメタデータには logicalTable、logicalTableId、fragment と継続フラグが含まれ、行は logicalRow と repeatedHeader を持ちます
各セルは rowSpan、columnSpan、anchorRow、anchorColumn、covered、header、mergeSource、confidence を記録します。空のタグ付きセルは保持され、未知のセル境界は null です
semantics 配列は、順序付けられたツリー全体の begin・content・end イベント、安定したノードと親の ID、解決済みと生のロール、名前空間、言語、代替テキスト、ActualText の有無、セル属性、ページ・ストリーム・MCID・オブジェクト参照を保持します
structureComplete は走査とコンテンツバインディングのカバレッジを表すもので、タグ付けやアクセシビリティの認証ではありません
戻り値
JSON と XHTML は完全なスタンドアロンドキュメントを返します。XHTML は結合セルをテーブルスパンで表現し、ブロックのソースメタデータを公開します
CSV はテーブルセルだけを返し、ページにテーブルがなければ空です。結合セルはテキストをアンカーセルに置き、覆われたセルは空のままになります
無効な要求または抽出失敗時には空文字列を返す
備考
解析では、フォーマット固有の Options とは独立に SetStructuredTextOptions が使われます。読み取りソースとフォールバックの警告は GetLastStructuredTextDiagnostics で確認してください
コンテンツのバインディングが完全であれば、実際のタグツリー順序が優先されます。未解決や曖昧なコンテンツは mixed または geometric へのフォールバックで抽出テキストを保持し、未知のカスタムロールを名前から推測することはありません
マーク付きコンテンツのバインディングは、ページストリームとネストした Form XObject 呼び出し経路を区別します。意味的な順序が曖昧な共有タグ付き Form 出現は、勝手な順序を割り当てる代わりにそのことが開示されます
ActualText の置換は、JSON スパンにソーステキストを保持します。オブジェクト参照は注釈テキストをそこから抽出せず、セマンティックメタデータとして保持されます
幾何テーブル検出には、複数セルが整列した行が必要です。オプションの結合推論と段組み検出はヒューリスティックなままです
境界ボックスは PDF ポイントの左上原点ページ座標です。断片はソーステキスト実行全体の境界を保持できます
抽出では、選択されたページと開いているライタータグスタックを保持します。未保存の現在のライタータグは、タグを閉じずドキュメントをファイナライズせずにそのまま含まれます
DLL の戻りポインターは、同じインスタンスで次に文字列を返す呼び出しを行うまで有効です
LastErrorCode は、ページ、形式、またはオプションが無効な場合は 111、抽出に失敗した場合は 515 です