ExtractStructuredPage

文字、擷取、結構化資料

描述

擷取單一 PDF 頁面,並把它的結構化文字模型序列化為 schema 2 JSON、語意 XHTML 或表格 CSV

模型結合真實結構樹順序與屬性、明確的幾何後備、段落、帶樣式的 span,以及含空白或合併儲存格的表格

語法

Delphi

Function TPDFlib.ExtractStructuredPage(Page, Format,
  Options: Integer): WideString;

ActiveX

Function PDFlib::ExtractStructuredPage(Page As Long, Format As Long,
  Options As Long) As String

DLL

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 起算)
FormatPDF_STRUCTURED_TEXT_JSON (0)、PDF_STRUCTURED_TEXT_XHTML (1) 或 PDF_STRUCTURED_TEXT_CSV (2)
Options零,或 PDF_STRUCTURED_TEXT_INCLUDE_STYLES (1),在 JSON 與 XHTML 中包含字型、大小、顏色與垂直對齊

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;span 在輸出文字之外保留 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 以表格 span 表示合併儲存格,並公開區塊來源中繼資料

CSV 只回傳表格儲存格,頁面沒有表格時為空;合併儲存格把文字放在錨點儲存格,被涵蓋的儲存格留空

請求無效或萃取失敗時傳回空字串

備註

分析使用 SetStructuredTextOptions,與各格式專屬的 Options 分開;讀取來源與後備警告請看 GetLastStructuredTextDiagnostics

內容繫結完整時,真實標籤樹順序優先;未解析或不明確的內容會以 mixed 或 geometric 後備保留萃取文字,未知自訂角色不會從名稱猜測

marked-content 繫結會區分頁面串流與巢狀 Form XObject 呼叫路徑;共用標記 Form 出現次數的語意順序不明確時會予以揭露,而不是編造順序

ActualText 取代會在 JSON span 中保留來源文字;物件參照保留為語意中繼資料,不會從中萃取註解文字

幾何表格偵測要求對齊的多儲存格列;選配的合併推論與分欄偵測仍屬啟發式方法

外接框使用 PDF 點的左上角頁面座標;片段可保留其完整的來源文字執行邊界

擷取會保留所選頁面與開啟中的寫入器標籤堆疊;目前未儲存的寫入器標籤會在不關閉標籤、不結束文件的狀態下納入輸出

DLL 傳回指標在下一次同一執行個體的字串傳回呼叫之前保持有效

LastErrorCode 為 111 表示頁面、格式或選項無效,515 表示萃取失敗

另請參閱

ExtractStructuredDocument, ExtractPageTextBlocks, GetPageText