TGViewer
Инструменты программиста Инструменты программиста @prog_tools · 12.9K subscribers
Post #2612 2.4K

Forwarded from Zen of Python

pymupdf4llm-C — извлекатель текста из PDF, написанный на C для скорости работы. Обходит PDF-страницы и сериализует блоки в структурированный JSON. Есть безопасные биндинги для Python и Rust без сырых указателей. Установка через pip: pip install pymupdf4llm-c или cargo: cargo add pymupdf4llm-c.

Для каждой страницы создается JSON с массивом блоков:
[
{
"type": "paragraph|heading|table|list|figure",
"text": "content",
"bbox": [x0, y0, x1, y1],
"font_size": 11.0,
"font_weight": "normal",
"page_number": 0
}
]

Для таблиц добавляются row_count, col_count, confidence. Координаты в PDF points, типы блоков для семантической обработки.

Как использовать
from pymupdf4llm_c import to_json

# В память
results = to_json("report.pdf", collect=True)
for page in results:
for block in page:
if block['type'] == 'table':
process_table(block) # свой код для таблиц

Можно писать в файлы: to_json(pdf_path, output_dir=Path("json")). Для Rust есть to_json_collect() и extract_page_json().

Полезно, когда:
— требуется предсказуемая структура для векторных баз;
— нужно различать заголовки, списки, таблицы при чанкинге;
— скорость критична: C-реализация быстрее Python-аналогов;
— работаешь с документами, где важна иерархия и расположение элементов.

Перед использованием нужно собрать: ./build.sh. Проект свежий, но рабочий. Код в репо.

@zen_of_python
  • ❤ 5
  • 👍 2
More from @prog_tools
  1. Oct 9, 2026Поиск и замена кода по структуре с ast-grep ast-grep ищет код по синтаксической структуре:…
  2. Oct 8, 2026Как найти самые большие файлы в Zsh Zsh умеет отбирать и сортировать файлы по размеру прям…
  3. Oct 8, 2026Post #3002
  4. Oct 8, 2026От чатбота к агентам: опыт Митчелла Хашимото Для работы с кодом Хашимото перешёл от отдель…
  5. Oct 7, 2026Post #3000
  6. Oct 7, 2026Read. Write. Edit. Bash. Это базовый набор операций Pi — агента, на котором построен OpenC…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →