Команды бота

    Редактирование файла

    Создать автоматизацию

    Создать правило автоотправки

    Переслать сообщение в...

    • Загрузка списка групп...

    PDF to Content · Библиотека контента из PDF

    example-c2-pdf-to-content.jpg

    Локальная обработка PDF: текст с координатами, картинки, таблицы и OCR. Результат — JSON и папка изображений. Опционально — загрузка на FastAPI (пока хранение в памяти / SQLite-схема, без обязательного PostgreSQL).

    Возможности

    • Извлечение текстовых блоков (bbox, шрифт) через PyMuPDF.
    • Картинки со страниц + OCR (Tesseract или EasyOCR).
    • Таблицы через pdfplumber.
    • GUI (run_gui.py): обзор, поиск по тексту, превью картинок и таблиц, сохранение JSON.
    • CLI: client/process_pdf.py.
    • REST: POST /api/documents, поиск, отдача документа (server/main.py).

    Не реализовано в текущем коде: продовый PostgreSQL/Elasticsearch, веб-витрина, векторный поиск. Схема SQLAlchemy есть в server/database.py; API по умолчанию держит документы в словаре процесса.

    Требования

    • Python 3.10+.
    • Windows: GUI на tkinter (обычно уже в поставке).
    • Для OCR Tesseract: UB-Mannheim installer и PATH.
    • EasyOCR — тяжелее, удобнее с GPU.
    • PDF без пароля.

    Установка и запуск

    cd D:\WinProjects\@pdf_to_content
    pip install -r requirements-client.txt
    python run_gui.py

    CLI:

    python client/process_pdf.py --input document.pdf --output result.json
    python client/process_pdf.py --input document.pdf --ocr easyocr

    Сервер (отдельное окно):

    pip install -r requirements-server.txt
    uvicorn server.main:app --reload --host 127.0.0.1 --port 8000
    python client/upload_to_server.py --file processed/result.json --server http://127.0.0.1:8000

    Пример переменных: config.example.env.

    Использование

    GUI

    1. «Обзор…» — выбрать PDF.
    2. Включить OCR и движок при необходимости.
    3. «Обработать PDF» — дождаться прогресса.
    4. Вкладки: Обзор, Текст (поиск/страница), Изображения, Таблицы, JSON.
    5. Сохранить JSON. Файлы также пишутся в processed/ и processed/images/.

    API

    • POST /api/documents — JSON документа и опционально файлы картинок.
    • GET /api/documents/{id} — документ.
    • Поиск — эндпоинт в server/main.py (по загруженным в память записям).

    Структура проекта

    @pdf_to_content/
    ├── run_gui.py
    ├── client/
    │   ├── gui_app.py
    │   ├── process_pdf.py
    │   ├── pdf_processor.py
    │   ├── ocr_processor.py
    │   └── upload_to_server.py
    ├── server/
    │   ├── main.py          # FastAPI, in-memory store
    │   └── database.py      # SQLAlchemy-схема (заготовка)
    ├── requirements-client.txt
    ├── requirements-server.txt
    └── doc/

    Технологии

    • Клиент: Python, PyMuPDF, pdfplumber, Pillow, pytesseract / EasyOCR, tkinter.
    • Сервер: FastAPI, uvicorn; SQLAlchemy в схеме, runtime API — память процесса.
    История изменений

    Формат Keep a Changelog.

    [Unreleased]

    Changed

    • Документация приведена к четвёрке; зафиксировано фактическое поведение API (in-memory), без обещаний Elasticsearch/PostgreSQL как текущего статуса.

    [1.0.0]

    Added

    • Клиентский парсинг PDF, OCR, GUI, CLI.
    • FastAPI загрузка/поиск по документам в памяти процесса.
    • SQLAlchemy-схема как заготовка.

    Edit Message

    Attachments:

    AI Assistant

    Enter your instruction to edit the text: