--keep-lines für Gedichtbände, OCR-Neuerkennung repariert, OCR-Rauschen entfernen
- --ocr always / schiefe OCR-Ebenen: alte unsichtbare Textebene vor der
OCR entfernen (nur in der Kopie im Speicher); vorher blieb der alte
Text erhalten bzw. stand doppelt da ("bliht" statt "blüht")
- --keep-lines: jede PDF-Zeile bleibt eine Zeile, Strophen als Absätze,
Einrückungen bleiben, nichts wird zusammengefügt (auch keine Trennung)
- OCR-Text selbst erkennen (unsichtbar, wie pymupdf4llm 1.28 intern);
Buchkante "|" entfernen, Rauschzeilen und Fetzen neben dem Textbereich
verwerfen, Zeilen mit verschiedenen Grundlinien trennen, Überschriften
ohne Buchstaben/Ziffern verwerfen
- Fraktur: frk+deu dokumentiert, Grenzen in TODO
- Tests: Scan mit falscher OCR-Ebene, Gedicht in schmaler Spalte,
OCR-Rauschen; README, Bedienungsanleitung, TODO
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
1ba5b5005f
commit
3e5195efc2
1 changed files with 265 additions and 13 deletions
17
README.md
17
README.md
|
|
@ -16,7 +16,8 @@ sudo apt install tesseract-ocr tesseract-ocr-deu pandoc
|
|||
pip install -r requirements.txt # pymupdf4llm, pymupdf-layout, pytest
|
||||
```
|
||||
|
||||
`tesseract-ocr` wird nur für Scans gebraucht, `pandoc` nur für `--epub`.
|
||||
`tesseract-ocr` wird nur für Scans gebraucht, `pandoc` nur für `--epub`. Für Fraktur-Scans
|
||||
zusätzlich `sudo apt install tesseract-ocr-frk` und `--ocr-language frk+deu`.
|
||||
|
||||
## Verwendung
|
||||
|
||||
|
|
@ -59,6 +60,7 @@ python3 pdf2md.py --epub --ocr-language eng --ocr always scan.pdf scan.md # EP
|
|||
| `--from-md PFAD` | nur EPUB erzeugen – aus einer (bearbeiteten) `.md` oder einem `--split`-Ordner |
|
||||
| `--title`, `--author` | Titel/Autor im EPUB vorgeben (statt PDF-Metadaten bzw. YAML-Kopf) |
|
||||
| `--lang` | Sprache im EPUB (Standard: aus `--ocr-language`, `deu`→`de`, `eng`→`en`) |
|
||||
| `--keep-lines` | jede Zeile der PDF bleibt eine Zeile (Gedichtbände, Liedtexte): Strophen als Absätze, Einrückungen bleiben; nichts wird zusammengefügt, auch keine Silbentrennung |
|
||||
| `--keep-headers`, `--keep-footers` | Kolumnentitel bzw. Seitenzahlen nicht entfernen |
|
||||
|
||||
## Was die Nachbearbeitung macht
|
||||
|
|
@ -72,7 +74,9 @@ python3 pdf2md.py --epub --ocr-language eng --ocr always scan.pdf scan.md # EP
|
|||
(Markdown: `\` am Zeilenende, Einrückung als geschütztes Leerzeichen). Codeblöcke über
|
||||
eine Seitengrenze werden zusammengeführt; lange Codezeilen bricht der Reader um.
|
||||
- **Verse:** Eine kurze Zeile mit Satzende gilt nur dann als Absatzende, wenn die nächste
|
||||
Zeile eingerückt ist (Roman); sonst ist sie eine Verszeile und bleibt eine Zeile.
|
||||
Zeile eingerückt ist (Roman); sonst ist sie eine Verszeile und bleibt eine Zeile. Füllen
|
||||
Verse die Zeile fast (schmale Gedichtbände), ist das geometrisch nicht von Fließtext zu
|
||||
unterscheiden – dafür gibt es `--keep-lines`.
|
||||
- **Absätze:** eine Absatzgrenze gilt nach Satzende (`.` `!` `?` `…`, auch mit `«` `“` `»`
|
||||
usw. dahinter) oder an einem harten Umbruch; auf Scans werden Absätze am Einzug erkannt.
|
||||
- **Silbentrennung:** `Geheim-|dienst` → `Geheimdienst`, `Militär-|Geheimdienst` bleibt mit
|
||||
|
|
@ -124,7 +128,12 @@ synthetisch erzeugt.
|
|||
Zeilen verlieren. Bei den Ljutsch-Bänden tritt das nicht auf (geprüft per Wortabgleich
|
||||
PDF ↔ Markdown).
|
||||
- OCR-Fehler (z. B. fehlende Leerzeichen) werden nicht korrigiert. Bei alten Scans mit
|
||||
mitgelieferter OCR-Ebene liefert `--ocr always` meist deutlich besseren Text.
|
||||
mitgelieferter OCR-Ebene liefert `--ocr always` meist deutlich besseren Text (die alte
|
||||
Ebene wird dabei verworfen, z. B. „bliht“ → „blüht“). OCR-Rauschen vom Scanrand (Buchkante
|
||||
als „|“, Buchstabenfetzen neben dem Textbereich) wird entfernt.
|
||||
- Fraktur (`--ocr-language frk+deu`): Das lange s bleibt als „ſ“ erhalten; bei manchen Scans
|
||||
legt die Zeilenbildung von pymupdf4llm zwei eng stehende Verszeilen zusammen
|
||||
(„UndDon tauchteweißen …“).
|
||||
- **Mathematische Formeln** werden als Bilder übernommen; für Mathebücher ist ein anderes
|
||||
Werkzeug besser geeignet (z. B. Marker, Nougat).
|
||||
- **Was am PDF liegt, bleibt:** fehlende Ligaturen ohne Textzuordnung („Offzielle“),
|
||||
|
|
@ -134,7 +143,7 @@ synthetisch erzeugt.
|
|||
Link (Zensur-Report: alle 76 gesetzt). Ohne Linkziel in der PDF wird eine URL nur über
|
||||
typische Umbruchstellen (`-`, `/`, `_`) mit ihrer Fortsetzung verbunden.
|
||||
- Zeilengetreue Erkennung: Ist ein Gedicht genauso eingerückt wie Absatzanfänge, werden
|
||||
Verszeilen mit Satzzeichen am Ende zu eigenen Absätzen. Listings mit eingedruckten
|
||||
Verszeilen mit Satzzeichen am Ende zu eigenen Absätzen (Abhilfe: `--keep-lines`). Listings mit eingedruckten
|
||||
Zeilennummern werden nicht immer als ein Codeblock erkannt.
|
||||
Weitere bekannte Schwächen: [TODO.md](TODO.md).
|
||||
- Bilder werden als JPEG (Qualität 85) gespeichert; EPUB Band 1 ca. 3 MB.
|
||||
|
|
|
|||
Loading…
Reference in a new issue