Извлечение типизированных таблиц
THotPDF.ExtractLoadedTypedTables превращает семантические строки таблиц в публичную каноническую сетку колонок, не изменяя загруженный документ
Непрерывность таблиц
Совместимые смежные фрагменты могут добавлять канонические колонки, превращая пропущенные промежуточные начала в явные значения ColumnSpan вместо выбрасывания объединённых заголовков
Совместимые таблицы на последовательных страницах склеиваются в одну, при этом совпадающие ведущие строки заголовков остаются на месте и помечаются IsRepeatedHeader
Типизированные значения и confidence
Каждая ячейка хранит исходный Unicode-текст, границы в пространстве страницы, row- и column-spans, нормализованное значение, типизированное хранилище, код валюты и confidence
Inference распознаёт пустые, строковые, целочисленные, числовые, булевы, дата, дата-время, валютные и процентные значения по заданным вызывающим кодом правилам для десятичного разделителя, разделителя тысяч и порядка даты
Ограниченный экспорт
ExportLoadedTypedTables пишет развёрнутые строки CSV в стиле RFC 4180 или насыщенный метаданными JSON через ограниченный staging stream и финальную публикацию с безопасным откатом
Лимиты на страницы, глифы, таблицы-источники, выходные таблицы, строки, ячейки, текст, выходные байты, confidence и отмену проверяются до публикации результатов
Книги XLSX
Юнит HPDFXLSXExport экспортирует THPDFTypedTables как книгу Office Open XML без установки Office или загрузки внешней библиотеки таблиц
HPDFExportTypedTablesXLSX пишет в читаемый, перезаписываемый поток с поддержкой позиционирования на текущей позиции, собирая книгу целиком до публикации и восстанавливая перезаписанные байты при восстановимой ошибке записи
HPDFExportTypedTablesXLSXFile создаёт временный файл рядом с целевым с монопольным доступом, сбрасывает его на диск и атомарно заменяет целевой файл только после успешного экспорта
HPDFExportLoadedTypedTablesXLSX объединяет извлечение с экспортом в поток и отклоняет приёмник, совпадающий с источником загрузки
Каждая извлечённая таблица становится worksheet с именем Table N — с числовыми и булевыми ячейками, форматами даты и даты-времени, кодами валют в number format, процентными форматами и валидированными объединёнными диапазонами
Целые числа длиннее 15 десятичных разрядов сохраняются текстом, чтобы не потерять точное значение: у числовых ячеек Excel ограниченная точность
Строки остаются литеральным текстом, включая значения, начинающиеся с =, а управляющие символы XML и литеральные escape-последовательности Office Open XML сохраняются через экранирование SpreadsheetML
По умолчанию скрытый worksheet Source metadata записывает для каждой ячейки-источника адрес в книге, индексы страницы и таблицы источника (с нуля), исходный и нормализованный текст, тип значения, код валюты, границы в пространстве страницы и confidence
THPDFXLSXExportOptions.Default допускает до 4,096 таблиц, 1,000,000 строк, 1,000,000 ячеек и 256 MiB вывода, с опциональным THPDFCancellationToken и опцией, позволяющей не включать worksheet с метаданными
Экспорт отклоняет пересекающиеся объединения, неупорядоченные или дублирующиеся индексы колонок, нечисловые (nonfinite) числа, неверные коды валют, даты вне диапазона 1900–9999, текст длиннее 32,767 единиц UTF-16 и worksheet за лимитами Excel в 1,048,576 строк или 16,384 колонок
У листа метаданных одна строка заголовка, поэтому его включение дополнительно ограничивает число ячеек-источников по книге до 1,048,575; пустое извлечение всё равно создаёт один видимый лист
Члены ZIP используют метод сжатия stored, поэтому размер вывода может быть больше сжатых книг; экспортер не сохраняет ни визуальное оформление PDF, ни диаграммы, формулы, макросы или встроенные изображения
JSON-задания и C ABI открывают тот же конвейер книг через tables.export с format: "xlsx" и общими бюджетами извлечения и вывода