function ExtractTables(
const Options: TPdfTableExtractionOptions): TPdfTables;
La estrategia de reglas transforma los segmentos de trazos nativos en coordenadas de la página, aísla las cuadrículas conectadas y combina las celdas base adyacentes cuando falta un divisor local
Con DetectFilledRulings la misma estrategia también lee geometría rellena: un rectángulo relleno cuyo grosor no supera MaxRulingThickness se convierte en una línea a lo largo de su eje largo, y un rectángulo relleno mayor, como una celda sombreada, aporta sus cuatro bordes. Cada coordenada de línea luego se ajusta dentro de RulingSnapTolerance, de modo que los pedazos de borde por celda, los bordes dobles y las celdas sombreadas con un canal pequeño se conectan en una sola cuadrícula. Las exportaciones de procesadores de texto y navegadores dibujan las tablas así, así que se reportan como cuadrículas con líneas y no como fragmentos de espacios en blanco. IncludeFormXObjects recorre los form XObjects con sus matrices combinadas
La estrategia de espacios en blanco agrupa las cajas de palabras nativas en filas visuales y exige anclajes de columna alineados repetidos a lo largo de varias filas Las palabras que ya están dentro de una cuadrícula con líneas detectada se excluyen, y cada límite de columna debe ser un corredor vertical sin texto en todas las filas que tienen contenido en ambos lados, lo que evita que los párrafos justificados se reporten como tablas
Cada TPdfTable incluye los límites de la página, RowCount y los conteos de columnas, DetectionMode, la confianza y valores de TPdfTableCell con texto, límites, el estado IsHeader, RowIndex, ColumnIndex, RowSpan y ColumnSpan
TPdfTable.ToCsv emite campos entrecomillados al estilo RFC 4180 y deja vacías las posiciones cubiertas por celdas combinadasTPdfTable.ToJson emite texto Unicode, geometría, celdas combinadas, confianza, modo de detección y metadatos de continuaciónMinRows, MinColumns, AlignmentTolerance, RulingTolerance, MinColumnGap, MaxRowGapFactor y MinConfidence controlan la detección; MinRows puede ser 1 en cuadrículas con líneas, mientras que la detección por espacios en blanco siempre necesita al menos dos filas
DetectFilledRulings, MaxRulingThickness, RulingSnapTolerance y IncludeFormXObjects ajustan la ruta de geometría rellena; los valores predeterminados son activado, 3 puntos, 4 puntos y activado
MaxWords, MaxRulingSegments, MaxCells y MaxTables fallan de forma cerrada antes de un trabajo o una asignación sin límites
var
Options: TPdfTableExtractionOptions;
Tables: TPdfTables;
begin
Options := TPdfTableExtractionOptions.Default;
Tables := Pdf1.ExtractTables(Options);
if Length(Tables) > 0 then
Memo1.Text := Tables[0].ToCsv;
end;