from ddp_pdf2json.inspector.pdf_object_inspector import PDFObjectInspector
with PDFObjectInspector("report.pdf") as inspector:
lines = inspector.collect_text(0, level="line", normalize=True)
for obj in lines:
print(obj.attrs["text"], obj.bbox)
tables = inspector.collect_tables(0, min_rows=2, min_cols=2)
report = inspector.inventory_document()
PDF → структурированный JSON.
Текст, таблицы, изображения, векторная графика.
Библиотека для преобразования PDF-документов в структурированный JSON:
интеллектуальная склейка текстовых элементов (7 стратегий), гибкая
конфигурация через единый объект Config, система
паттернов с авторегистрацией парсеров и координаторов, визуализация
объектов страниц (PNG / SVG / HTML).
Быстрый старт
Низкоуровневое извлечение объектов страницы и высокоуровневая инвентаризация с объединением.
from ddp_pdf2json import get_config
from ddp_pdf2json.inspector import InventoryInspector
cfg = get_config(strategy="custom", x_tolerance=3.0)
inspector = InventoryInspector("document.pdf", cfg=cfg)
result = inspector.process()
print(result) # dict с секциями content, __metadata, __processing_info
ElementPatternRegistry
и обрабатываются через ElementBlockProcessor /
DocumentFlowCoordinator — см. полный пример в
API reference → document.base.
Архитектура
Четыре модуля: конфигурация, низкоуровневый и высокоуровневый инспектор, фреймворк разбора блоков.
Стратегии мерджа
Передаются в get_config(strategy=...) — определяют агрессивность склейки текстовых элементов.
| Стратегия | Описание |
|---|---|
simple | Базовые мягкие допуски |
custom | Полный контроль геометрии, шрифтов, колонок |
advanced | Custom + динамические коэффициенты переносов |
inventory | Строгие допуски для инвентарных документов |
conservative | Минимальная агрессивность склейки |
Полный API reference
Все классы, методы и функции библиотеки — с сигнатурами, аргументами, типами и примерами использования.