2.8 KiB
2.8 KiB
Aufgaben: Tätigkeitsnachweis-Generator (Streamlit App) – PDF-Migration
Migration: Das XLSX-Template war schreibgeschützt und wurde durch ein PDF-Template ersetzt. Alle
_Field-Platzhalter im PDF werden durch echte Daten ersetzt.
🔄 Migration: XLSX → PDF Template ✅
- M1:
requirements.txt→PyMuPDFhinzufügen - M2:
config/settings.ini→filename_patternauf.pdf-Endung ändern - M3:
config/output-fields.json→target_cellentfernen,pdf_fieldhinzufügen (Mapping source_field → PDF-Platzhalter-Name) - M4:
src/config.py→get_available_templates()auf.pdf-Dateien umstellen - M5:
src/validator.py→validate_template()für PDF angepasst (prüft_Field-Platzhalter via PyMuPDF) - M6:
src/writer.py→ Komplett neu: PDF-basierte Generierung mit PyMuPDF- Pre-Scan: Alle
_Field-Platzhalter im Template-PDF finden (Position, Schriftgröße) - Für jeden Mitarbeiter: neues PDF, pro Monat eine Seite (Template-Kopie),
_Field-Texte redacten + ersetzen - Dateiname:
{nachname}_{vorname}_Tätigkeitsnachweis.pdf
- Pre-Scan: Alle
- M7:
app.py→ Template-Validierung für PDF angepasst (Dropdown zeigt.pdf, Validierung prüft_Field-Marker) - M8:
coldrun.py→ An PDF-Template angepasst - M9:
tests/test_e2e.py→ Tests für PDF-Output umgeschrieben (PyMuPDF statt openpyxl zur Output-Validierung) - M10:
.copilot/PLAN.mdund.copilot/TASKS.mdaktualisiert
🔍 Analyse (abgeschlossen)
- A1: Input-Datei
input/2025 JM.xlsxanalysiert - A2: PDF-Template
template/Tätigkeitsnachweise Stellenförderung.pdfliegt vor (mit_Field-Platzhaltern)
⚙️ Konfiguration (migriert)
- K1:
config/input-fields.json— unverändert gültig - K2:
config/output-fields.json—target_cellentfernt,pdf_fieldhinzugefügt - K3:
config/settings.ini— filename_pattern auf.pdf
🧱 Core-Module
- C1:
requirements.txt— streamlit, openpyxl, PyMuPDF - C2:
src/__init__.py+src/models.py—OutputMappingumpdf_fielderweitert - C3:
src/config.py— Template-Suche auf.pdfumgestellt - C4:
src/parser.py— unverändert - C5:
src/validator.py—validate_template()für PDF via PyMuPDF - C6:
src/writer.py— Komplett neu mit PyMuPDF (redact + insert_text)
🖥️ UI & Start
- U1:
app.py— PDF-Template-Validierung angepasst - U2:
start.bat— unverändert - U3:
coldrun.py— An PDF angepasst, funktioniert - U4:
README.md— vorhanden
✅ Test
- T1: E2E-Test mit realer Input-Datei und PDF-Template → 5/5 Tests bestanden
- T2: Edge Cases — Umlaute korrekt im PDF, fehlende Marker (Ort/Datum) werden übersprungen