ExtractStructuredDocument
Tekst, wyodrębnianie, dane strukturalne
Opis
Przechwytuje wybrany zakres stron, analizuje strony wspólnie i zwraca jeden dokument JSON schematu 2, jeden semantyczny dokument XHTML albo skoordynowane tabele CSV
Składnia
Delphi
Function TPDFlib.ExtractStructuredDocument(Const PageRange: WideString;
Format, Options: Integer): WideString;ActiveX
Function PDFlib::ExtractStructuredDocument(PageRange As String,
Format As Long, Options As Long) As StringDLL
const wchar_t* DLExtractStructuredDocument(int InstanceID,
const wchar_t* PageRange, int Format, int Options);
const char* DLExtractStructuredDocumentA(int InstanceID,
const char* PageRange, int Format, int Options);Parametry
| PageRange | Zakres stron liczony od 1, na przykład 1-3,7, albo pusty ciąg dla wszystkich stron |
|---|---|
| Format | PDF_STRUCTURED_TEXT_JSON (0), PDF_STRUCTURED_TEXT_XHTML (1) lub PDF_STRUCTURED_TEXT_CSV (2) |
| Options | Zero albo PDF_STRUCTURED_TEXT_INCLUDE_STYLES (1) |
Wartości zwracane
JSON zawiera version: 2 i tablicę pages w schemacie udokumentowanym przez ExtractStructuredPage; stabilne identyfikatory węzłów semantycznych obowiązują między stronami
XHTML łączy treść semantyczną, trzymając połączone fragmenty tabel wewnątrz jednej tabeli zamiast wymagać sekcji na stronę
CSV zawiera wyłącznie tabele i jest pusty, gdy żadna wybrana strona nie ma tabeli; kontynuowane tabele logiczne używają jednego nagłówka tabeli i pomijają rozpoznane powtarzające się wiersze nagłówka
Nieprawidłowy zakres, format lub opcja oraz każdy błąd wyodrębniania zwracają pusty ciąg
Uwagi
Analiza używa SetStructuredTextOptions niezależnie od specyficznych dla formatu opcji Options; źródła kolejności czytania i ostrzeżenia fallbacku sprawdź w GetLastStructuredTextDiagnostics
Gdy powiązania treści są kompletne, pierwszeństwo ma rzeczywista kolejność drzewa tagów; treść nierozwiązana lub niejednoznaczna zachowuje wyodrębniony tekst w fallbacku mieszanym albo geometrycznym, a nieznanych ról niestandardowych nie zgaduje się po ich nazwach
Analiza międzystronicowa rozpoznaje powtarzające się elementy stałe marginesów i zgodne kontynuacje tabel; domyślne flagi rozpoznają te elementy, zachowując ich tekst
Otagowane komórki zachowują pustą treść i jawne zakresy wierszy oraz kolumn; zniekształcone lub nachodzące na siebie siatki tabel przechodzą w fallback, zachowując wyodrębniony tekst
Modele wybranych stron są przechowywane dla analizy całego dokumentu, a kompletny zserializowany wynik jest buforowany; pamięć rośnie wraz z wybraną treścią i rozmiarem wyjścia
Wyodrębnianie zachowuje wybraną stronę i otwarty stos tagów zapisu; bieżące niezapisane tagi zapisu trafiają do wyniku bez tagów zamykających i bez finalizowania dokumentu
Postęp i kooperacyjne anulowanie korzystają ze zwykłego cyklu życia operacji na dokumencie
LastErrorCode ma wartość 111 dla nieprawidłowych danych wejściowych oraz 515, gdy wyodrębnianie się nie powiedzie