PDFium Delphi Component Docs

ExtractTables Método

Componente: TPdf  ·  Unidad: PDFium
Detecta y extrae la estructura de tablas de la página PDF actual

Syntax

function ExtractTables(
  const Options: TPdfTableExtractionOptions): TPdfTables;

Description

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

Output

Budgets and tuning

MinRows, 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

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