pdf2md/CLAUDE.md
Dieter Schlüter 354dfca871 pdf2md v5: gescannte und digitale PDFs, EPUB-Export, Tests
- 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>
2026-10-02 00:33:21 +02:00

999 B
Raw Blame History

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 braucht tesseract-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 .gitignore ausgeschlossen – keine Binärdateien committen.
  • pdf2md_v5.py patcht zwei Funktionen in pymupdf4llm.helpers.document_layout (get_styled_text, text_to_md). Nach einem pymupdf4llm-Update prüfen, ob tests/test_normalize.py::test_pymupdf4llm_patch_keeps_compound_hyphen noch grün ist.