Extraction de tableaux typés

THotPDF.ExtractLoadedTypedTables convertit les lignes sémantiques de tableaux en une grille de colonnes canonique publique sans modifier le document chargé

Continuité des tableaux

Des fragments adjacents compatibles peuvent ajouter des colonnes canoniques, transformant les départs intermédiaires manquants en valeurs ColumnSpan explicites au lieu d’abandonner les en-têtes fusionnés

Des tableaux compatibles sur des pages consécutives deviennent un seul tableau, les lignes d’en-tête de début identiques restent présentes et portent IsRepeatedHeader

Valeurs typées et confiance

Chaque cellule conserve le texte Unicode d’origine, les bornes dans l’espace de page, les fusions de lignes et de colonnes, la valeur normalisée, le stockage typé, le code devise et la confiance

L’inférence reconnaît les valeurs vides, chaîne, entier, nombre, booléen, date, date-heure, devise et pourcentage selon les règles de décimales, de séparateurs de milliers et d’ordre des dates choisies par l’appelant

Export borné

ExportLoadedTypedTables écrit des lignes CSV de style RFC 4180 étendu ou un JSON riche en métadonnées via un flux de préparation borné et une publication finale sûre pour le rollback

Les limites de pages, de glyphes, de tableaux sources, de tableaux en sortie, de lignes, de cellules, de texte, d’octets en sortie, de confiance et d’annulation sont vérifiées avant de publier les résultats

Classeurs XLSX

L’unité HPDFXLSXExport exporte THPDFTypedTables sous forme de classeur Office Open XML sans installer Office ni charger une bibliothèque tableur externe

HPDFExportTypedTablesXLSX écrit dans un stream lisible, inscriptible et positionnable à sa position courante, prépare le classeur complet avant publication et restaure les octets écrasés en cas d’échec d’écriture récupérable

HPDFExportTypedTablesXLSXFile utilise un fichier temporaire créé en exclusivité à côté de la cible, le flushe et ne remplace la cible atomiquement qu’après un export réussi

HPDFExportLoadedTypedTablesXLSX combine l’extraction et l’export par stream et rejette une destination qui aliaserait la source chargée

Chaque tableau extrait devient une feuille de calcul nommée Table N, avec des cellules numériques et booléennes, des formats date et date-heure, des codes devise dans les formats numériques, des formats pourcentage et des plages fusionnées validées

Les entiers de plus de 15 chiffres décimaux sont stockés en texte pour préserver leur valeur exacte, car les cellules numériques d’Excel ont une précision limitée

Les chaînes restent du texte littéral, y compris les valeurs commençant par =, et les caractères de contrôle XML ainsi que les séquences d’échappement Office Open XML littérales sont préservés via l’échappement SpreadsheetML

Par défaut, une feuille de calcul masquée Source metadata enregistre l’adresse de cellule du classeur, les index de page et de tableau sources à partir de zéro, le texte d’origine et normalisé, le type de valeur, le code devise, les bornes dans l’espace de page et la confiance de chaque cellule source

THPDFXLSXExportOptions.Default autorise jusqu’à 4 096 tableaux, 1 000 000 lignes, 1 000 000 cellules et 256 Mio en sortie, avec un THPDFCancellationToken facultatif et une option pour omettre la feuille de métadonnées

L’export rejette les fusions chevauchantes, les index de colonnes désordonnés ou dupliqués, les nombres non finis, les codes devise invalides, les dates hors de 1900 à 9999, le texte de plus de 32 767 unités UTF-16 et les feuilles dépassant les limites Excel de 1 048 576 lignes ou 16 384 colonnes

La feuille de métadonnées a une ligne d’en-tête, son activation limite donc en plus les cellules sources à 1 048 575 dans tout le classeur ; une extraction vide produit quand même une feuille visible

Les membres ZIP utilisent la méthode de compression stored, si bien que la taille en sortie peut dépasser celle de classeurs compressés ; l’exporteur ne conserve ni le style visuel PDF, ni les graphiques, formules, macros ou images embarquées

Les jobs JSON et l’ABI C exposent le même pipeline de classeur via tables.export avec format: "xlsx" et les budgets partagés d’extraction et de sortie

API associées