function ExtractTables(
const Options: TPdfTableExtractionOptions): TPdfTables;
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
TPdfTable.ToCsv schrijft velden met aanhalingstekens in RFC 4180-stijl en laat gedekte span-posities leegTPdfTable.ToJson schrijft Unicode-tekst, geometrie, spans, confidence, detectiemodus en voortzettingsmetadataMinRows, 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
var
Options: TPdfTableExtractionOptions;
Tables: TPdfTables;
begin
Options := TPdfTableExtractionOptions.Default;
Tables := Pdf1.ExtractTables(Options);
if Length(Tables) > 0 then
Memo1.Text := Tables[0].ToCsv;
end;