PDFium Delphi Component Docs

ExtractTables Metodo

Componente: TPdf  ·  Unità: PDFium
Rileva ed estrae la struttura tabellare dalla pagina PDF corrente

Sintassi

function ExtractTables(
  const Options: TPdfTableExtractionOptions): TPdfTables;

Descrizione

La strategia ruled trasforma i segmenti di percorso con tratto nativi in coordinate di pagina, isola le griglie connesse e unisce le celle base adiacenti quando manca un divisore locale

Con DetectFilledRulings la stessa strategia legge anche la geometria riempita: un rettangolo riempito non più spesso di MaxRulingThickness diventa una riga di bordo lungo il suo asse maggiore, e un rettangolo riempito più grande, come una cella con ombreggiatura, contribuisce con i suoi quattro lati. Ogni coordinata della riga di bordo viene poi agganciata entro RulingSnapTolerance, così i frammenti di bordo per singola cella, i doppi bordi e le celle ombreggiate con una piccola canalina si connettono in un'unica griglia. Le esportazioni da elaboratori di testo e browser disegnano le tabelle in questo modo, quindi vengono riportate come griglie con bordi anziché come frammenti whitespace. IncludeFormXObjects percorre i form XObject con le loro matrici combinate

La strategia whitespace raggruppa i box delle parole nativi in righe visive e richiede anchor di colonna allineati ripetuti su più righe Le parole già all'interno di una griglia con bordi rilevata vengono escluse, e ogni confine di colonna deve essere un corridoio verticale privo di testo su tutte le righe che hanno contenuto su entrambi i lati, così i paragrafi giustificati non vengono riportati come tabelle

Ogni TPdfTable include i limiti di pagina, RowCount e i conteggi delle colonne, DetectionMode, la confidenza e valori TPdfTableCell con testo, limiti, stato IsHeader, RowIndex, ColumnIndex, RowSpan e ColumnSpan

Output

Budget e regolazione

MinRows, MinColumns, AlignmentTolerance, RulingTolerance, MinColumnGap, MaxRowGapFactor e MinConfidence controllano il rilevamento; MinRows può essere 1 per le griglie con bordi, mentre il rilevamento whitespace richiede sempre almeno due righe

DetectFilledRulings, MaxRulingThickness, RulingSnapTolerance e IncludeFormXObjects regolano il percorso della geometria riempita; i valori predefiniti sono attivo, 3 punti, 4 punti e attivo

MaxWords, MaxRulingSegments, MaxCells e MaxTables falliscono in modo conservativo prima di elaborazioni o allocazioni non delimitate

Esempio

var
  Options: TPdfTableExtractionOptions;
  Tables: TPdfTables;
begin
  Options := TPdfTableExtractionOptions.Default;
  Tables := Pdf1.ExtractTables(Options);
  if Length(Tables) > 0 then
    Memo1.Text := Tables[0].ToCsv;
end;

Vedi anche

ExtractDocumentTables, BuildReflowDocument, GetStructuredText, PageWordBoxes