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:
+18
-6
@@ -33,7 +33,8 @@ class TransformationJob:
|
||||
saxon_jar_path: Path,
|
||||
apache_fop_dir: Path,
|
||||
diff_pdf_path: Path,
|
||||
diff_pdf_params: list[str]
|
||||
diff_pdf_params: list[str],
|
||||
xsl_id: tuple = None
|
||||
):
|
||||
"""
|
||||
Initialisiert einen Transformations-Job.
|
||||
@@ -48,11 +49,13 @@ class TransformationJob:
|
||||
apache_fop_dir: Pfad zum Apache FOP-Verzeichnis
|
||||
diff_pdf_path: Pfad zur diff-pdf Binary
|
||||
diff_pdf_params: Standard-Parameter für diff-pdf
|
||||
xsl_id: ID der XSL-Datei (als Tuple)
|
||||
"""
|
||||
self.project_dir = project_dir
|
||||
self.xml_file = xml_file # Relativ
|
||||
self.xsl_file = xsl_file # Absolut
|
||||
self.xslt_params = xslt_params
|
||||
self.xsl_id = xsl_id
|
||||
|
||||
# Tool-Pfade
|
||||
self.java_vm_path = java_vm_path
|
||||
@@ -71,12 +74,21 @@ class TransformationJob:
|
||||
self.valide_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
|
||||
self.temp_fo = self.output_dir / f"{base_name}.fo"
|
||||
self.output_pdf = self.output_dir / f"{base_name}.pdf"
|
||||
self.valide_pdf = self.valide_dir / f"{base_name}.pdf"
|
||||
self.diff_pdf = self.diff_dir / f"{base_name}.pdf"
|
||||
|
||||
# Füge XSL-ID zum Dateinamen hinzu, falls vorhanden
|
||||
if xsl_id:
|
||||
# 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)
|
||||
import sys
|
||||
|
||||
@@ -2839,7 +2839,8 @@ class MainWindow(QMainWindow):
|
||||
saxon_jar_path=saxon_jar.path_to_jar_file,
|
||||
apache_fop_dir=apache_fop.path_to_dir,
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user