--split seiten, --epub-per-file, Nachspann, --from-md --split, --split-chars
- --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>
This commit is contained in:
parent
b05e2d9cf5
commit
5cd5e5d69b
1 changed files with 568 additions and 39 deletions
|
|
@ -10,8 +10,8 @@ Es gibt zwei Arbeitswege:
|
|||
- **Weg A:** PDF → EPUB in einem Schritt, wenn das Ergebnis ohne Nacharbeit passt.
|
||||
- **Weg B:** PDF → Markdown → von Hand bearbeiten → EPUB, wenn du Überschriften, Text oder
|
||||
Bilder noch korrigieren willst.
|
||||
- **Weg C:** wie Weg B, aber jeder Teil bzw. jedes Kapitel in einer eigenen Datei – zum
|
||||
Umsortieren, für RAG oder andere Formate.
|
||||
- **Weg C:** wie Weg B, aber jeder Teil, jedes Kapitel oder jeder Seitenbereich in einer
|
||||
eigenen Datei – zum Umsortieren, für RAG oder andere Formate.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -171,7 +171,7 @@ Dateinamen.
|
|||
|
||||
---
|
||||
|
||||
## 4. Weg C – Teile oder Kapitel als Einzeldateien
|
||||
## 4. Weg C – Teile, Kapitel oder Seitenbereiche als Einzeldateien
|
||||
|
||||
```bash
|
||||
cd pdf2md # Ordner des Repos
|
||||
|
|
@ -207,7 +207,25 @@ band1/
|
|||
---
|
||||
```
|
||||
- Erkennt das Programm keine Gliederung, teilt es nach Länge (ca. 30 000 Zeichen, an
|
||||
Absatzgrenzen) in `Abschnitt 1`, `Abschnitt 2` … und meldet das.
|
||||
Absatzgrenzen; ändern mit `--split-chars N`) in `Abschnitt 1`, `Abschnitt 2` … und meldet das.
|
||||
- Anhang, „Der Autor“, Impressum usw. nach dem letzten Kapitel landen in `nn_nachspann.md`,
|
||||
sofern sie keine eigene Kapitelüberschrift haben.
|
||||
- **Nach Seiten der PDF** (für Bücher ohne Kapitel):
|
||||
```bash
|
||||
python3 pdf2md.py --split seiten --pages-per-file 25 buch.pdf Output/buch.md
|
||||
python3 pdf2md.py --split seiten --page-ranges 1-12,13-40,41- buch.pdf Output/buch.md
|
||||
```
|
||||
Es geht kein Text verloren: Geschnitten wird vor dem ersten Absatz, der auf der Grenzseite
|
||||
beginnt. Ein Absatz, der über die Seitengrenze läuft, bleibt ganz in der vorigen Datei;
|
||||
eine Überschrift direkt vor dem Schnitt kommt in die neue Datei. Mit `--pages-per-file`
|
||||
wird bevorzugt an einer Überschrift geschnitten, die höchstens eine Seite neben der Grenze
|
||||
liegt; `--page-ranges` hält sich streng an die Seiten (Seiten außerhalb der Bereiche werden
|
||||
eigene Dateien). `source_pages` kann sich deshalb um eine Seite überlappen.
|
||||
- **Ein EPUB je Datei:** `--epub-per-file` legt in `Output/band1/epub/` für jede Datei ein
|
||||
EPUB an („Buchtitel - Kapiteltitel“, mit Cover). Das Gesamt-EPUB entsteht nur mit `--epub`.
|
||||
- **Bearbeitetes Markdown nachträglich teilen:**
|
||||
`python3 pdf2md.py --from-md Output/band1.md --split kapitel` → Ordner `Output/band1/`
|
||||
(Bildpfade werden angepasst; `--split seiten` geht hier nicht, dafür braucht es die PDF).
|
||||
- **Umsortieren:** in `index.md` die Zeilen verschieben. **Weglassen:** Zeile löschen.
|
||||
Dateien dürfen umbenannt werden, wenn der Link in `index.md` mitgeändert wird.
|
||||
- **EPUB neu bauen:** `python3 pdf2md.py --from-md Output/band1/` → `Output/band1.epub`
|
||||
|
|
@ -292,7 +310,10 @@ Kolumnentitel und Seitenzahlen gedruckter Bücher werden automatisch entfernt, g
|
|||
| `--jpeg-quality 1-100` | JPEG-Qualität (Standard 85; 95 fast verlustfrei, Bilder ca. 1,7× größer) |
|
||||
| `--epub` | zusätzlich EPUB erzeugen (schaltet `--images` ein) |
|
||||
| `--epub-file PFAD` | anderer Pfad für das EPUB |
|
||||
| `--split teile\|kapitel` | Teile bzw. Kapitel als Einzeldateien (Abschnitt 4) |
|
||||
| `--split teile\|kapitel\|seiten` | Teile, Kapitel oder Seitenbereiche als Einzeldateien (Abschnitt 4) |
|
||||
| `--pages-per-file N`, `--page-ranges BEREICHE` | Seiten je Datei bzw. feste Bereiche für `--split seiten` |
|
||||
| `--split-chars N` | Länge der Abschnitte, wenn keine Gliederung erkannt wird (Standard 30 000) |
|
||||
| `--epub-per-file` | mit `--split`: ein EPUB je Einzeldatei |
|
||||
| `--from-md PFAD` | nur EPUB aus `.md`-Datei oder `--split`-Ordner (Abschnitt 3, 4) |
|
||||
| `--title`, `--author` | Titel/Autor im EPUB vorgeben |
|
||||
| `--lang` | Sprache im EPUB (Standard: aus `--ocr-language` abgeleitet, `deu`→`de`, `eng`→`en`; sonst `de`) |
|
||||
|
|
|
|||
Loading…
Reference in a new issue