function ExtractTables(
const Options: TPdfTableExtractionOptions): TPdfTables;
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
TPdfTable.ToCsv emite campos entre aspas no estilo RFC 4180 e deixa vazias as posições cobertas por spansTPdfTable.ToJson emite texto Unicode, geometria, spans, confiança, modo de detecção e metadados de continuaçãoMinRows, 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
var
Options: TPdfTableExtractionOptions;
Tables: TPdfTables;
begin
Options := TPdfTableExtractionOptions.Default;
Tables := Pdf1.ExtractTables(Options);
if Length(Tables) > 0 then
Memo1.Text := Tables[0].ToCsv;
end;