ExtractStructuredDocument
Texte, extraction, données structurées
Description
Capture une plage de pages sélectionnée, analyse les pages ensemble et renvoie un document JSON du schéma 2, un document XHTML sémantique ou des tableaux CSV coordonnés
Syntaxe
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);Paramètres
| PageRange | Une plage de pages à partir de 1 telle que 1-3,7, ou une chaîne vide pour toutes les pages |
|---|---|
| Format | PDF_STRUCTURED_TEXT_JSON (0), PDF_STRUCTURED_TEXT_XHTML (1) ou PDF_STRUCTURED_TEXT_CSV (2) |
| Options | Zéro ou PDF_STRUCTURED_TEXT_INCLUDE_STYLES (1) |
Valeurs de retour
JSON contient version: 2 et un tableau pages reprenant le schéma documenté par ExtractStructuredPage ; les IDs de nœuds sémantiques stables s’appliquent d’une page à l’autre
XHTML combine le contenu sémantique, les fragments de tableaux joints étant conservés dans un seul tableau au lieu d’exiger une section par page
CSV contient uniquement les tableaux et reste vide si aucune page sélectionnée n’en comporte ; les tableaux logiques poursuivis utilisent un seul en-tête de tableau et omettent les lignes d’en-tête répétées identifiées
Une plage, un format ou une option non valide, ainsi que tout échec d'extraction, renvoient une chaîne vide
Remarques
L’analyse utilise SetStructuredTextOptions indépendamment des Options propres au format ; consultez GetLastStructuredTextDiagnostics pour les sources de lecture et les avertissements de repli
L’ordre réel de l’arbre de balises prime lorsque les liaisons de contenu sont complètes ; un contenu non résolu ou ambigu conserve son texte extrait dans le repli mixed ou geometric, et les rôles personnalisés inconnus ne sont pas devinés d’après leur nom
L’analyse inter-pages identifie les habillages de marges répétés et les continuations de tableaux compatibles ; les drapeaux par défaut identifient les habillages tout en conservant leur texte
Les cellules balisées conservent leur contenu vide et leurs étendues explicites de lignes et de colonnes ; des grilles de tableaux mal formées ou chevauchantes passent en repli tout en conservant le texte extrait
Les modèles des pages sélectionnées sont conservés pour l’analyse à l’échelle du document, et le résultat sérialisé complet est mis en tampon ; la mémoire croît avec le contenu sélectionné et la taille de sortie
L’extraction préserve la page sélectionnée et la pile de balises du writer ouverte ; les balises courantes non enregistrées du writer sont incluses sans fermer de balises ni finaliser le document
La progression et l'annulation coopérative utilisent le cycle de vie normal des opérations du document
LastErrorCode vaut 111 si l'entrée n'est pas valide et 515 si l'extraction échoue