ExtractStructuredPage

Metin, ayıklama, yapılandırılmış veri

Açıklama

Bir PDF sayfasını yakalar ve yapılandırılmış metin modelini şema 2 JSON, anlamsal XHTML veya tablo CSV'si olarak serileştirir

Model, gerçek yapı ağacı sırasını ve özniteliklerini, açık geometric geri dönüşü, paragrafları, stilli aralıkları ve boş ya da birleşmiş hücreli tablolarla birleştirir

Sözdizimi

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

Parametreler

Page1 tabanlı sayfa numarası
FormatPDF_STRUCTURED_TEXT_JSON (0), PDF_STRUCTURED_TEXT_XHTML (1) veya PDF_STRUCTURED_TEXT_CSV (2)
OptionsYazı tipini, boyutu, rengi ve dikey hizalamayı JSON ve XHTML'e eklemek için sıfır veya PDF_STRUCTURED_TEXT_INCLUDE_STYLES (1)

JSON hiyerarşisi

{
  "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": []
}

Sayfa meta verisi readingOrderSource, structureComplete ve warnings alanlarını içerir; okuma kaynakları tagged, mixed, geometric veya geometric-columns'dur

Bloklar nodeId, source, confidence, furniture, furnitureSource ve bbox alanlarını içerir; aralıklar, çıktı metninin yanında originalText, contentEvent, nodeId ve artifact değerlerini korur

Tablo meta verisi logicalTable, logicalTableId, fragment ve devam bayraklarını içerir; satırlar logicalRow ve repeatedHeader taşır

Her hücre rowSpan, columnSpan, anchorRow, anchorColumn, covered, header, mergeSource ve confidence kaydeder; boş etiketli hücreler korunur ve bilinmeyen hücre sınırları null'dur

semantics dizisi; sıralı tam ağaç begin, content ve end olaylarını, kararlı düğüm ve üst kimliklerini, çözümlenmiş ve ham rolleri, ad alanlarını, dili, alternatif metni, ActualText varlığını, hücre özniteliklerini ve sayfa, akış, MCID ya da nesne referanslarını korur

structureComplete; geçiş ve içerik bağlama kapsamını tanımlar, bir etiketleme ya da erişilebilirlik sertifikası değildir

Dönüş değerleri

JSON ve XHTML eksiksiz bağımsız belgeler döndürür; XHTML, birleşmiş hücreleri tablo yayılımlarıyla temsil eder ve blok kaynak meta verisini açığa çıkarır

CSV yalnızca tablo hücrelerini döndürür ve sayfada tablo yoksa boştur; birleşmiş hücreler metni çapa hücreye koyar ve kapsanan hücreleri boş bırakır

Geçersiz bir istek veya ayıklama başarısızlığı boş dize döndürür

Açıklamalar

Analiz, biçime özgü Options'tan bağımsız olarak SetStructuredTextOptions'ı kullanır; okuma kaynakları ve geri dönüş uyarıları için GetLastStructuredTextDiagnostics'a bakın

İçerik bağlamaları eksiksizken gerçek etiket ağacı sırası öncelik kazanır; çözülemeyen veya belirsiz içerik, mixed ya da geometric geri dönüşte ayıklanan metni korur ve bilinmeyen özel roller adlarından tahmin edilmez

İşaretli içerik bağlamaları, sayfa akışlarını iç içe Form XObject çağrı yollarından ayırt eder; belirsiz anlamsal sıralı paylaşılan etiketli Form geçişleri, uydurma bir sıra atanmak yerine açıklanır

ActualText değiştirmeleri, kaynak metni JSON aralıklarında korur; nesne referansları, içlerinden ek açıklama metni ayıklanmadan anlamsal meta veri olarak tutulur

Geometrik tablo algılaması, hizalı çok hücreli satırlar gerektirir; isteğe bağlı birleşme çıkarımı ve sütun algılaması sezgisel kalır

Sınırlayıcı kutular, PDF noktaları cinsinden sol üst sayfa koordinatlarını kullanır; bir parça, tam kaynak metin bölümü sınırlarını koruyabilir

Ayıklama, seçili sayfayı ve açık yazıcı etiket yığınını korur; kaydedilmemiş geçerli yazıcı etiketleri, kapanış etiketleri olmadan ve belgeyi sonlandırmadan eklenir

DLL dönüş işaretçileri, aynı örnekte dize döndüren bir sonraki çağrıya kadar geçerli kalır

Geçersiz sayfa, biçim veya seçenekler için LastErrorCode 111; ayıklama başarısız olduğunda 515 değeridir

Ayrıca bkz

ExtractStructuredDocument, ExtractPageTextBlocks, GetPageText