PDFium Delphi Component Docs

ExtractDocumentTables Метод

Компонент: TPdf  ·  Модуль: PDFium
Извлекает таблицы на каждой странице и помечает совпадающие межстраничные продолжения

Syntax

function ExtractDocumentTables(
  const Options: TPdfTableExtractionOptions): TPdfTables;

Description

Метод обходит страницы в порядке документа, применяет ExtractTables, разделяет настроенные бюджеты ячеек и таблиц на всё сканирование целиком и восстанавливает страницу, активную до вызова

Когда включён DetectContinuations, две таблицы на последовательных страницах образуют цепочку, когда каждая граница столбца совпадает в пределах допуска и либо оба фрагмента лежат в пределах ContinuationMargin от краёв своих страниц, либо под первым фрагментом и над вторым не лежит другой текст; текущие верхние и нижние колонтитулы внутри поля игнорируются. Фрагмент, чья первая строка — одна ячейка на всю ширину, несёт подпись и всегда начинает новую таблицу

Фрагменты с линиями разметки, в которых меньше строк, чем MinRows, сохраняются при сканировании документа, если оказывается, что они продолжают сетку с предыдущей страницы, — так одиночная строка, перелившаяся за границу страницы, не теряется

TPdfTableExtractionOptions разрешает две стратегии через DetectRuledTables и DetectWhitespaceTables, ограничивает принятие результатов полями MinRows, MinColumns и HeaderRowCount и настраивает геометрию полями допусков, включая ContinuationMargin для сопоставления цепочек

Continuation values

Example

var
  Options: TPdfTableExtractionOptions;
  Tables: TPdfTables;
  I: Integer;
begin
  Options := TPdfTableExtractionOptions.Default;
  Tables := Pdf1.ExtractDocumentTables(Options);
  for I := 0 to High(Tables) do
    Memo1.Lines.Add(Tables[I].ToJson);
end;

See Also

ExtractTables, GetStructuredText