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,
|
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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user