PDF-Dateinamen enthalten nun XSL-ID zur Vermeidung von Überschreibungen

Wenn eine XML-Datei mehreren XSL-Dateien zugeordnet ist, wurden die
generierten PDFs bisher überschrieben. Jetzt wird die XSL-ID in den
Dateinamen integriert (z.B. rechnung_xsl_1.pdf, rechnung_xsl_2.pdf),
sodass jede Transformation ihre eigene PDF-Datei erhält.

Änderungen:
- TransformationJob: xsl_id Parameter hinzugefügt
- Dateinamen-Generierung berücksichtigt XSL-ID (Tuple → String)
- MainWindow: XSL-ID wird an TransformationJob übergeben

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-12 21:24:54 +01:00
parent c593ff145b
commit ee6ded95ab
2 changed files with 20 additions and 7 deletions
+18 -6
View File
@@ -33,7 +33,8 @@ class TransformationJob:
saxon_jar_path: Path, saxon_jar_path: Path,
apache_fop_dir: Path, apache_fop_dir: Path,
diff_pdf_path: Path, diff_pdf_path: Path,
diff_pdf_params: list[str] diff_pdf_params: list[str],
xsl_id: tuple = None
): ):
""" """
Initialisiert einen Transformations-Job. Initialisiert einen Transformations-Job.
@@ -48,11 +49,13 @@ class TransformationJob:
apache_fop_dir: Pfad zum Apache FOP-Verzeichnis apache_fop_dir: Pfad zum Apache FOP-Verzeichnis
diff_pdf_path: Pfad zur diff-pdf Binary diff_pdf_path: Pfad zur diff-pdf Binary
diff_pdf_params: Standard-Parameter für diff-pdf diff_pdf_params: Standard-Parameter für diff-pdf
xsl_id: ID der XSL-Datei (als Tuple)
""" """
self.project_dir = project_dir self.project_dir = project_dir
self.xml_file = xml_file # Relativ self.xml_file = xml_file # Relativ
self.xsl_file = xsl_file # Absolut self.xsl_file = xsl_file # Absolut
self.xslt_params = xslt_params self.xslt_params = xslt_params
self.xsl_id = xsl_id
# Tool-Pfade # Tool-Pfade
self.java_vm_path = java_vm_path self.java_vm_path = java_vm_path
@@ -71,12 +74,21 @@ class TransformationJob:
self.valide_dir.mkdir(exist_ok=True) self.valide_dir.mkdir(exist_ok=True)
self.diff_dir.mkdir(exist_ok=True) self.diff_dir.mkdir(exist_ok=True)
# Dateinamen basierend auf XML-Datei # Dateinamen basierend auf XML-Datei + XSL-ID
base_name = self.xml_file.stem base_name = self.xml_file.stem
self.temp_fo = self.output_dir / f"{base_name}.fo"
self.output_pdf = self.output_dir / f"{base_name}.pdf" # Füge XSL-ID zum Dateinamen hinzu, falls vorhanden
self.valide_pdf = self.valide_dir / f"{base_name}.pdf" if xsl_id:
self.diff_pdf = self.diff_dir / f"{base_name}.pdf" # Konvertiere Tuple (1, 2, 3) zu String "1_2_3"
xsl_id_str = "_".join(str(x) for x in xsl_id)
file_name_base = f"{base_name}_xsl_{xsl_id_str}"
else:
file_name_base = base_name
self.temp_fo = self.output_dir / f"{file_name_base}.fo"
self.output_pdf = self.output_dir / f"{file_name_base}.pdf"
self.valide_pdf = self.valide_dir / f"{file_name_base}.pdf"
self.diff_pdf = self.diff_dir / f"{file_name_base}.pdf"
# Apache FOP Binaries (plattformabhängig) # Apache FOP Binaries (plattformabhängig)
import sys import sys
+2 -1
View File
@@ -2839,7 +2839,8 @@ class MainWindow(QMainWindow):
saxon_jar_path=saxon_jar.path_to_jar_file, saxon_jar_path=saxon_jar.path_to_jar_file,
apache_fop_dir=apache_fop.path_to_dir, apache_fop_dir=apache_fop.path_to_dir,
diff_pdf_path=diff_pdf.path_to_binary_file, diff_pdf_path=diff_pdf.path_to_binary_file,
diff_pdf_params=diff_pdf.default_params diff_pdf_params=diff_pdf.default_params,
xsl_id=xsl_file_obj.id
) )
return job return job