PDFium Delphi Component Docs

ExtractTables Método

Componente: TPdf  ·  Unidade: PDFium
Detecta e extrai a estrutura de tabelas da página PDF atual

Syntax

function ExtractTables(
  const Options: TPdfTableExtractionOptions): TPdfTables;

Description

A estratégia de linhas transformados converte segmentos nativos de traçado de caminhos em coordenadas da página, isola grades conectadas e mescla células base adjacentes quando um divisor local está ausente

Com DetectFilledRulings a mesma estratégia também lê geometria preenchida: um retângulo preenchido com espessura não maior que MaxRulingThickness se torna uma linha ao longo do seu eixo maior, e um retângulo preenchido maior, como uma célula sombreada, contribui com suas quatro bordas. Cada coordenada de linha então é encaixada dentro de RulingSnapTolerance, de modo que pedaços de borda por célula, bordas duplas e células sombreadas com uma pequena calha se conectam em uma única grade. Exportações de processadores de texto e navegadores desenham tabelas assim, por isso elas são reportadas como grades com linhas em vez de fragmentos de espaços em branco. IncludeFormXObjects percorre os form XObjects com suas matrizes combinadas

A estratégia de espaços em branco agrupa caixas de palavras nativas em linhas visuais e exige âncoras de coluna alinhadas repetidas ao longo de várias linhas Palavras que já estão dentro de uma grade com linhas detectada são excluídas, e cada limite de coluna deve ser um corredor vertical livre de texto em todas as linhas que têm conteúdo dos dois lados, o que evita que parágrafos justificados sejam reportados como tabelas

Cada TPdfTable inclui os limites da página, RowCount e contagens de colunas, DetectionMode, confiança e valores de TPdfTableCell com texto, limites, o estado IsHeader, RowIndex, ColumnIndex, RowSpan e ColumnSpan

Output

Budgets and tuning

MinRows, MinColumns, AlignmentTolerance, RulingTolerance, MinColumnGap, MaxRowGapFactor e MinConfidence controlam a detecção; MinRows pode ser 1 para grades com linhas, enquanto a detecção por espaços em branco sempre precisa de pelo menos duas linhas

DetectFilledRulings, MaxRulingThickness, RulingSnapTolerance e IncludeFormXObjects ajustam o caminho de geometria preenchida; os padrões são ativado, 3 pontos, 4 pontos e ativado

MaxWords, MaxRulingSegments, MaxCells e MaxTables falham de forma fechada antes de trabalho ou alocação sem limites

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