- Seitenklassifizierung (Text / Scan / OCR-Ebene / leer) mit OCR-Plan pro Seite: Scans per Tesseract, gerade OCR-Ebenen übernehmen, schiefe neu erkennen, Foto-/Coverseiten nur nach Probe-OCR; --ocr auto|always|never, --jobs - Nachbearbeitung: Satzende-Erkennung mit « “ ‹, Silbentrennung, Überschriften- ebenen aus PDF-Lesezeichen, Rückstufung von Satzresten, Inhaltsverzeichnis trennen, Seitenzahlen/Kolumnentitel/Bildtext entfernen - Patches für pymupdf4llm: Bindestrich-Komposita am Zeilenende, Absätze per Einzug in Scan-Blöcken - --epub über pandoc (Metadaten, Cover, Kapitelaufteilung) - pytest-Suite mit synthetischen Test-PDFs (79 Tests) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
999 B
999 B
CLAUDE.md
PDF → Markdown → EPUB für den PocketBook-Reader (digitale und gescannte PDFs).
Aktuelles Programm: pdf2md_v5.py (Einzeldatei). v1–v4 sind Historie, nicht ändern.
Befehle
- Tests:
python3 -m pytest(Fixtures werden synthetisch erzeugt; OCR brauchttesseract-ocr-deu) - Lint:
python3 -m ruff check pdf2md_v5.py tests/ - Echttest:
python3 pdf2md_v5.py --epub Operation_Ljutsch_Band_1_-_Reinhard_Otto_Kranz.pdf <scratch>/band1.md
Konventionen
- Hilfetexte, Meldungen, Kommentare und Docstrings auf Deutsch (wie v4); Bezeichner Englisch.
- Echttests nie nach
Fertig/schreiben (dort liegen die Ergebnisse des Nutzers). - PDFs/EPUBs/Bilder sind per
.gitignoreausgeschlossen – keine Binärdateien committen. pdf2md_v5.pypatcht zwei Funktionen inpymupdf4llm.helpers.document_layout(get_styled_text,text_to_md). Nach einem pymupdf4llm-Update prüfen, obtests/test_normalize.py::test_pymupdf4llm_patch_keeps_compound_hyphennoch grün ist.