PDFium Component Docs

ExtractTables methode

Component: TPdf  ·  Unit: PDFium
Detecteert en extraheert tabelstructuur van de huidige PDF-pagina

Syntax

function ExtractTables(
  const Options: TPdfTableExtractionOptions): TPdfTables;

Description

De rasterlijnstrategie zet native gestreepte padsegmenten om naar paginacoördinaten, isoleert verbonden rasters en voegt aangrenzende basiscellen samen wanneer een lokale scheidingslijn ontbreekt

Met DetectFilledRulings leest dezelfde strategie ook gevulde geometrie: een gevulde rechthoek die niet dikker is dan MaxRulingThickness wordt één rasterlijn langs zijn lange as, en een grotere gevulde rechthoek zoals een gearceerde cel levert zijn vier randen. Elke rasterlijncoördinaat wordt daarna binnen RulingSnapTolerance uitgelijnd, zodat randstukken per cel, dubbele randen en gearceerde cellen met een kleine goot elkaar vinden in één raster. Tekstverwerkers en browsers tekenen tabellen op deze manier, dus ze worden gerapporteerd als rasters met lijnen in plaats van als witruimefragmenten. IncludeFormXObjects loopt form XObjects af met hun gecombineerde matrices

De witruimestrategie groepeert native woord-boxes in visuele rijen en vereist herhaaldelijk uitgelijnde kolomankers over meerdere rijen Woorden die al binnen een gedetecteerd raster met lijnen liggen worden uitgesloten, en elke kolomgrens moet een verticale corridor zijn waar op alle rijen die aan beide kanten inhoud hebben geen tekst staat, zodat uitgevulde alinea's niet als tabellen worden gerapporteerd

Elke TPdfTable bevat paginagrenzen, RowCount en kolomtellingen, DetectionMode, confidence en TPdfTableCell-waarden met tekst, grenzen, de IsHeader-status, RowIndex, ColumnIndex, RowSpan en ColumnSpan

Output

Budgets and tuning

MinRows, MinColumns, AlignmentTolerance, RulingTolerance, MinColumnGap, MaxRowGapFactor en MinConfidence sturen de detectie; MinRows mag 1 zijn bij rasters met lijnen, terwijl witruimedetectie altijd minstens twee rijen nodig heeft

DetectFilledRulings, MaxRulingThickness, RulingSnapTolerance en IncludeFormXObjects stellen het pad voor gevulde geometrie af; de standaardwaarden zijn aan, 3 punten, 4 punten en aan

MaxWords, MaxRulingSegments, MaxCells en MaxTables falen gesloten voordat werk of allocatie onbegrensd raakt

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