PDFium Delphi Component Docs

ExtractTables Méthode

Composant: TPdf  ·  Unit: PDFium
Détecte et extrait la structure tabulaire de la page PDF courante

Syntax

function ExtractTables(
  const Options: TPdfTableExtractionOptions): TPdfTables;

Description

La stratégie à filets transforme les segments de tracé natifs en coordonnées de page, isole les grilles connexes et fusionne les cellules de base adjacentes lorsqu’un séparateur local est absent

Avec DetectFilledRulings, la même stratégie lit aussi la géométrie remplie : un rectangle rempli pas plus épais que MaxRulingThickness devient un filet le long de son grand axe, et un rectangle rempli plus grand, comme une cellule tramée, apporte ses quatre bords. Chaque coordonnée de filet est ensuite recalée dans RulingSnapTolerance, si bien que les morceaux de bordure par cellule, les doubles bordures et les cellules tramées avec une petite gouttière se connectent en une seule grille. Les exports de traitements de texte et de navigateurs dessinent les tableaux ainsi, ils sont donc signalés comme des grilles à filets plutôt que comme des fragments d'espaces. IncludeFormXObjects parcourt les form XObjects avec leurs matrices combinées

La stratégie fondée sur les espaces regroupe les boîtes de mots natives en lignes visuelles et exige des ancres de colonnes alignées répétées sur plusieurs lignes Les mots déjà à l'intérieur d'une grille à filets détectée sont exclus, et chaque limite de colonne doit être un couloir vertical sans texte sur toutes les lignes qui ont du contenu des deux côtés, ce qui évite que des paragraphes justifiés soient signalés comme des tableaux

Chaque TPdfTable comprend les limites de page, RowCount et les compteurs de colonnes, DetectionMode, la confiance et les valeurs TPdfTableCell avec le texte, les limites, l’état IsHeader, RowIndex, ColumnIndex, RowSpan et ColumnSpan

Output

Budgets and tuning

MinRows, MinColumns, AlignmentTolerance, RulingTolerance, MinColumnGap, MaxRowGapFactor et MinConfidence contrôlent la détection ; MinRows peut valoir 1 pour les grilles à filets, tandis que la détection par les espaces exige toujours au moins deux lignes

DetectFilledRulings, MaxRulingThickness, RulingSnapTolerance et IncludeFormXObjects règlent le parcours de la géométrie remplie ; les valeurs par défaut sont activé, 3 points, 4 points et activé

MaxWords, MaxRulingSegments, MaxCells et MaxTables échouent de manière sûre avant tout travail ou allocation non borné

Example

var
  Options: TPdfTableExtractionOptions;
  Tables: TPdfTables;
begin
  Options := TPdfTableExtractionOptions.Default;
  Tables := Pdf1.ExtractTables(Options);
  if Length(Tables) > 0 then
    Memo1.Text := Tables[0].ToCsv;
end;

See Also

ExtractDocumentTables, BuildReflowDocument, GetStructuredText, PageWordBoxes