PDFium Delphi Component Docs

ExtractTables metod

Component: TPdf  ·  Unit: PDFium
Identifierar och extraherar tabellstruktur från den aktuella PDF-sidan

Syntax

function ExtractTables(
  const Options: TPdfTableExtractionOptions): TPdfTables;

Description

Den linjerade strategin omvandlar nativa streckade sökvägssegment till sidkoordinater, isolerar sammanhängande rutnät och slår ihop angränsande basceller när en lokal avdelare saknas

Med DetectFilledRulings läser samma strategi också fylld geometri: en fylld rektangel som inte är tjockare än MaxRulingThickness blir en linje längs sin långa axel, och en större fylld rektangel, som en skuggad cell, bidrar med sina fyra kanter. Varje linjekoordinat snäpps sedan inom RulingSnapTolerance så att kantbitar per cell, dubbla kanter och skuggade celler med ett litet mellanrum ansluts till ett rutnät. Ordbehandlare och webbläsare ritar tabeller på det här sättet, så de rapporteras som linjerade rutnät i stället för som whitespace-fragment. IncludeFormXObjects går igenom form XObjects med sina kombinerade matriser

Whitespace-strategin grupperar nativa ordlådor i visuella rader och kräver upprepade riktade kolumnankare över flera rader Ord som redan ligger inuti ett detekterat linjerat rutnät exkluderas, och varje kolumngräns måste vara en vertikal korridor fri från text på alla rader som har innehåll på båda sidor, vilket gör att marginaljusterade stycken inte rapporteras som tabeller

Varje TPdfTable innehåller sidgränser, RowCount och kolumnantal, DetectionMode, konfidens samt TPdfTableCell-värden med text, gränser, IsHeader-läget, RowIndex, ColumnIndex, RowSpan och ColumnSpan

Output

Budgets and tuning

MinRows, MinColumns, AlignmentTolerance, RulingTolerance, MinColumnGap, MaxRowGapFactor och MinConfidence styr detekteringen; MinRows får vara 1 för linjerade rutnät, medan whitespace-detektering alltid behöver minst två rader

DetectFilledRulings, MaxRulingThickness, RulingSnapTolerance och IncludeFormXObjects ställer in spåret för fylld geometri; standardvärdena är på, 3 punkter, 4 punkter och på

MaxWords, MaxRulingSegments, MaxCells och MaxTables avbryter stängt innan arbete eller allokering blir obegränsat

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