fix: saubere PDF-Extraktion der Fortna-Anleitungen (lib/pdf_extract.py)
Neues Modul lib/pdf_extract.py fuer die Volltext-Konvertierung der 5 Hauptanleitungen, behebt die Qualitaetsprobleme der ersten Version: - Doppelte Nummerierung entfernt: PDF-Gliederungsnummer wird nur fuer die Ueberschriften-Ebene ausgewertet, im RST-Text weggelassen (Sphinx nummeriert) - Bilder positionsbasiert (bbox) extrahiert und als .. figure:: mit Caption an der richtigen Textstelle referenziert (625 Refs, 0 fehlende Bilder) - Fliesstext zu Absaetzen zusammengefuehrt statt je PDF-Zeile ein Absatz - Aufzaehlungen als RST-Listen (Bullet-only-Zeilen mit Folgezeile gemergt, zusammengelaufene Bullets aufgesplittet) - Aenderungshistorie-/Dokumentinfo-Tabellen und TOC-Seiten uebersprungen - Symbolfont-Zeichen (PUA) auf Unicode gemappt fortna_convert_chapters.py: nutzt pdf_extract statt extract_products, lesbare Dokumenttitel je Kapitel, Verzeichnislisten fuellen Kapitel ohne DE-Quelle mit vorhandenen Fremdsprachen (Ersatzteilliste EN). build_index.py / conf.py: Fremd-Altdateien aus dem Build ausgeschlossen. Alte Test-.rst aus fruehen convert_to_rst.py-Laeufen entfernt. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
e7aa3b4e4b
commit
c912b1e9d5
@@ -33,11 +33,39 @@ Ergebnis des ersten Laufs:
|
||||
(polyglossia 2.13 wirft unter lualatex einen bidi-Fehler), **`iconpackage=none`**
|
||||
(FontAwesome7 in MiKTeX bricht unter lualatex ab). Beides in `conf.py` kommentiert.
|
||||
|
||||
### Extraktion: neues Modul `lib/pdf_extract.py`
|
||||
|
||||
Die Volltext-Konvertierung der 5 Hauptanleitungen läuft über das neue Modul
|
||||
`lib/pdf_extract.py` (`extract_manual()`), das gegenüber der ersten Version deutlich
|
||||
sauberere `.rst` erzeugt:
|
||||
|
||||
- **Keine doppelte Nummerierung mehr:** Die im PDF vorhandene Gliederungsnummer
|
||||
(z. B. „1.7 Wichtige Informationen") wird nur zur Bestimmung der Überschriften-Ebene
|
||||
ausgewertet und im RST-Text **entfernt**. Sphinx/LaTeX nummeriert selbst → vorher
|
||||
„3.2.1 1.1 Wichtige Informationen", jetzt nur noch „3.2.1 Wichtige Informationen".
|
||||
- **Überschriften-Erkennung** nur bei führender PDF-Gliederungsnummer (kein „fett allein"),
|
||||
damit Tabellenzellen nicht fälschlich zu Überschriften werden.
|
||||
- **Bilder positionsbasiert extrahiert und referenziert:** pro Seite werden Text und Bilder
|
||||
nach Y-Position verwoben; jedes Bild wird als `.. figure::` mit korrektem Pfad und – falls
|
||||
vorhanden – der folgenden „Abbildung N: …"-Zeile als Caption eingebaut. (625 figure-Refs,
|
||||
0 fehlende Bilddateien.) Duplikate werden per MD5 entfernt, Titelseiten-Deko und
|
||||
Vollseiten-Hintergründe herausgefiltert.
|
||||
- **Fließtext zu Absätzen zusammengeführt:** PDF-Zeilenumbrüche werden nicht mehr zu je einem
|
||||
Absatz; zusammenhängende Zeilen bilden einen Absatz, Satzende beendet ihn.
|
||||
- **Aufzählungen als RST-Listen:** einzeln stehende Bullet-Zeichen werden mit der Folgezeile
|
||||
zusammengeführt, in eine Zeile zusammengelaufene Bullets aufgesplittet → `-`-Listenpunkte.
|
||||
- **Änderungshistorie-/Dokumentinfo-Tabellen** am Dokumentanfang werden übersprungen (zerfielen
|
||||
vorher in sinnlose Einzelzellen), ebenso Inhaltsverzeichnis-Seiten und Kopf-/Fußzeilen.
|
||||
|
||||
### Behobene Extraktionsprobleme
|
||||
|
||||
- **Symbolfont-Zeichen** (Wingdings/Symbol Private-Use-Area, z. B. Aufzählungs-Bullet U+F0B7):
|
||||
in `extract_products.py` via `clean_pua()` auf echte Unicode-Zeichen (•, →, ✓) gemappt,
|
||||
restliche PUA-Zeichen entfernt. Vorher erschienen leere Kästchen im PDF.
|
||||
via `clean_pua()` auf echte Unicode-Zeichen (•, →, ✓) gemappt, restliche PUA-Zeichen entfernt.
|
||||
Vorher erschienen leere Kästchen im PDF. (In `lib/pdf_extract.py`; die Variante in
|
||||
`extract_products.py` bleibt für die Produktprogramm-Extraktion bestehen.)
|
||||
- **Fremd-Altdateien** aus früheren `convert_to_rst.py`-Testläufen (NORD-Getriebe/-Motor im
|
||||
Anhang, alte Risikobewertung/Contents/Konfig/Ersatzteile-Volltexte) wurden entfernt; die
|
||||
betroffenen Kapitel liegen konzeptkonform als Verzeichnisliste vor.
|
||||
|
||||
### Bekannte Restpunkte (nicht Teil des Auftrags-Scopes)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user