Files
sufw-anweisenheiten/schema.json
T
Rob 34e9aa49d6 feat(cli): add shared PDF-to-image rendering and document usage
add shared render_pdf_pages helper for consistent rasterization
reuse the same renderer in regression test and CLI flow
add new render-image CLI command to export PDF pages as PNG
support single-page render (--page) and full export (--all-pages)
add configurable output path and DPI options
document the new rendering command and options in README
2026-04-17 13:48:27 +02:00

96 lines
3.3 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Attendance PDF Generator – Konfiguration",
"description": "Konfigurationsschema für config.json",
"type": "object",
"required": [
"antragsnummer",
"ort",
"template_pdf",
"output_dir",
"excel_year_pattern",
"excel_name_header",
"excel_name_column",
"excel_seq_column",
"excel_day_start_col",
"excel_day_end_col",
"month_mapping",
"valid_status_codes",
"plan_hours_value",
"pauschale_value"
],
"properties": {
"antragsnummer": {
"type": "string",
"description": "SAB-Antragsnummer (statisch, aus config)"
},
"ort": {
"type": "string",
"description": "Ort für die Unterschrift (statisch, aus config)"
},
"template_pdf": {
"type": "string",
"description": "Relativer Pfad zum PDF-Template"
},
"output_dir": {
"type": "string",
"description": "Ausgabeverzeichnis für generierte PDFs"
},
"excel_year_pattern": {
"type": "string",
"description": "Regex-Muster zur Jahresextraktion aus dem Dateinamen"
},
"excel_name_header": {
"type": "string",
"description": "Text in der Headerzeile der Namensspalte"
},
"excel_name_column": {
"type": "integer",
"description": "0-basierter Spaltenindex der Namensspalte (Spalte B = 1)"
},
"excel_seq_column": {
"type": "integer",
"description": "0-basierter Spaltenindex der lfd. Nummer (Spalte A = 0)"
},
"excel_day_start_col": {
"type": "integer",
"description": "0-basierter Spaltenindex des ersten Tages (Spalte J = 9)"
},
"excel_day_end_col": {
"type": "integer",
"description": "0-basierter Spaltenindex des letzten Tages (Spalte AN = 39)"
},
"month_mapping": {
"type": "object",
"description": "Mapping der deutschen Monatsabkürzungen auf zweistellige Monatsnummern",
"additionalProperties": {
"type": "string",
"pattern": "^(0[1-9]|1[0-2])$"
}
},
"valid_status_codes": {
"type": "array",
"items": { "type": "string" },
"description": "Gültige String-Statuscodes in Excel-Zellen (außer numerisch)"
},
"plan_hours_value": {
"type": "string",
"description": "Wert für das plan.N Dropdown (immer '6')"
},
"pauschale_value": {
"type": "string",
"description": "Wert für das pauschale.N Feld wenn anwesend"
},
"pdf_use_display_values": {
"type": "boolean",
"description": "true = Dropdown-Anzeigewerte ins PDF schreiben (z.B. 'X = anwesend'); false = rohe Export-Werte (z.B. 'X')",
"default": true
},
"pdf_need_appearances": {
"type": "boolean",
"description": "Steuert AcroForm /NeedAppearances beim Schreiben der PDF. false wird fuer stabile PyMuPDF-Render bevorzugt (Footer/Buttons sichtbar).",
"default": false
}
}
}