- --split seiten mit --pages-per-file N (Standard 20, Ausrichtung an Überschriften bis eine Seite neben der Grenze) oder --page-ranges (streng; Seiten außerhalb werden eigene Dateien) - Schnitt nur im fertigen Gesamt-Markdown (lückenlos): vor dem ersten Absatz, der auf der Grenzseite beginnt; Überschriften vor dem Schnitt wandern in die neue Datei; source_pages aus Anfang/Ende jedes Absatzes - Seitenzuordnung über die Rohtexte je Seite (pymupdf4llm page_chunks=True, aneinandergehängt byte-gleich; Band 1/2 unverändert), auch für OCR-Seiten - --epub-per-file: ein EPUB je Einzeldatei in <name>/epub/ - Nachspann: Anhang/Autor/Impressum nach dem letzten Kapitel als eigene Datei - --from-md DATEI --split teile|kapitel: bearbeitetes Markdown nachträglich teilen, Bild- und Cover-Pfade angepasst - --split-chars N; Längen-Abschnitte tragen die Überschrift am Anfang als Titel - Tests (tests/test_split_pages.py), README, Bedienungsanleitung, CLAUDE.md, TODO Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2.9 KiB
2.9 KiB
TODO
1. Als Nächstes (Stand 2026-10-02)
- Gedichtbände neu erzeugen und prüfen – die Dateien in
Output/stammen von vor den Korrekturen (Commit180d98a):
Was dabei auffällt, entscheidet über die Punkte in Abschnitt 2.python3 pdf2md.py --epub --ocr always --keep-lines Neue_Gedichte_-_Rainer_Maria_Rilke.pdf Output/Neue_Gedichte_-_Rainer_Maria_Rilke.md python3 pdf2md.py --epub --ocr-language deu_latf --keep-lines Neue_Gedichte_-_Jacob_Loewenberg_-_Fraktur_1895.pdf Output/Neue_Gedichte_-_Jacob_Loewenberg_-_Fraktur_1895.md
2. Mögliche Erweiterungen (je ca. 30 Min.)
- Option „ſ“ → „s“ für Fraktur: lesbarer auf dem Reader, aber nicht mehr originalgetreu.
- Ornamente/Zierleisten werden auf Scans mit
--keep-linesmanchmal als Wortsalat gelesen („amm Cem wen rn aFREE anneee“). Idee: Zeilen ohne plausible Wörter verwerfen (Anteil wortähnlicher Tokens, Funktionswörter wie inlooks_like_text). - Bilder auf Scanseiten gehen mit
--keep-linesverloren (der direkte Tesseract-Weg übernimmt keine Bilder). Für Gedichtbände meist egal, für illustrierte Liederbücher nicht.
3. Bekannte Grenzen (bewusst so gelassen)
- Fraktur-OCR: Auch
deu_latf(tessdata_best) liest alte Scans nicht fehlerfrei („Uls“ statt „Als“, „=“ statt „—“); das Ubuntu-Modellfrkist deutlich schwächer („ftarf“, „fam“). Alte Scans brauchen Nacharbeit (Weg B). - Gesperrte Überschriften („M e i n k l e i nes Stück D D R“) bleiben zerrissen; eine Korrektur wäre fehleranfällig.
- Alte Scans mit eigener OCR-Ebene:
--ocr alwaysliefert meist besseren Text (die alte Ebene wird verworfen). - Gedicht wie Absatzanfänge eingerückt (Band 2, „Blinde Flecken“: alle Verse bei x = 94):
geometrisch nicht von einzeiligen Dialogabsätzen zu unterscheiden; Verszeilen mit Satzende
werden dort Absätze. Für reine Gedichtbände:
--keep-lines. - Gedicht-Scans ohne
--keep-lines: pymupdf-layout verschränkt eng stehende OCR-Zeilen („UndDon tauchteweißen“). Mit--keep-linesumgangen (Zeilen direkt aus Tesseract). - Listings mit eingedruckten Zeilennummern (Markdown Guide: „4 <html>“, „5 <head>“) werden nicht immer als ein Codeblock erkannt; Programmausgaben ohne typische Merkmale bleiben Text.
4. Wartung
- Nach einem Update von pymupdf4llm (
pip install -U pymupdf4llm) zuerstpython3 -m pytestlaufen lassen:pdf2md.pypatcht drei Funktionen der Bibliothek. Version 1.28 hat z. B. das Format für Bildtext und die OCR-Erkennung geändert. Außerdem prüfen, obpage_chunks=Trueaneinandergehängt noch dasselbe liefert wie ohne (Regressionsvergleich Band 1/2). - Bei Änderungen am Umbruch: Regressionsvergleich gegen den letzten Commit über das Probekorpus (Ljutsch Band 1/2, Zensur-Report, Markdown Guide, Register, Rust-Kochbuch, Kempis-Scan).