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 StringDLL
const wchar_t* DLExtractStructuredPage(int InstanceID, int Page,
int Format, int Options);
const char* DLExtractStructuredPageA(int InstanceID, int Page,
int Format, int Options);Parametreler
| Page | 1 tabanlı sayfa numarası |
|---|---|
| Format | PDF_STRUCTURED_TEXT_JSON (0), PDF_STRUCTURED_TEXT_XHTML (1) veya PDF_STRUCTURED_TEXT_CSV (2) |
| Options | Yazı 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