ExtractStructuredPage

텍스트, 추출, 구조화된 데이터

설명

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 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);

매개변수

Page1부터 시작하는 페이지 번호
FormatPDF_STRUCTURED_TEXT_JSON(0), PDF_STRUCTURED_TEXT_XHTML(1) 또는 PDF_STRUCTURED_TEXT_CSV(2)
Options0 또는 JSON 및 XHTML에 글꼴, 크기, 색상 및 세로 정렬을 포함하는 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입니다

참고 항목

ExtractStructuredDocument, ExtractPageTextBlocks, GetPageText