Transformation
Der webPDF-Server kann vor einer Konvertierung eines Dokuments über den Webservice "Converter" eine Transformation auf das Ausgangsformat anwenden, sofern es sich um Daten im XML-Format handelt. Das Ergebnis der Transformation wird dann als neues Ausgangsdokument für die Konvertierung verwendet und in ein PDF-Dokument konvertiert.
Idealerweise steht am Ende der Transformation ein HTML-Dokument, das dann mittels des HTML-Konverters in ein PDF-Dokument gewandelt wird.
Um diese Transformation zu aktivieren, muss in den Parametern für Webservice-Aufrufs der Block transform
vorhanden sein:
API {REST}:/converter
{
"converter": {
"html": {
"downloadImages": true,
},
"pdfa": {
"convert": {
"level": "3b",
}
},
"transform": {
"xslTransformation": {
"resources": {
"file": [
{
"fileName": "",
"format": "xslt",
"source": "value",
"uri": "",
"value": ""
}
]
}
}
}
}
}
Ist dieser Block vorhanden, dann wird zunächst das übergebene Dokument (XML-Dokument), mittels einer XLST-Transformation umgewandelt. Das daraus resultierende Dokument wird dann dem Konverter zur weiteren Verarbeitung als neues Ausgangsdokument übergeben. Entsteht z.B. aus der Transformation ein HTML-Dokument, so werden dann auch die entsprechenden Parameter angewendet (siehe html
oben im Beispiel), die für das Format übergeben wurden. Auch weitere Parameter, wie z.B. eine PDF/A-Konvertierung (siehe Beispiel oben) werden dann angewendet.
In dem Element transform
wird über xslTransformation
oder xRechnung
die Art der Transformation bestimmt. Dabei stellt "xslTransformation" eine generische Transformation für allgemeine XML-Daten dar, während xRechnung
eine zielgerichtete Transformation ist, die die XML-Daten in dem konkreten XRechung-Format erwartet.
Bei xslTransformation
werden die Transformationen als XSLT (Extensible Stylesheet Language Transformations) unter resources
übergeben. Dabei können ein bis n-Dokumente über das Element file
eingetragen werden, die jeweils einer Ressource bei der Transformation entsprechen. Bei den Ressourcen muss mindestens eine XSLT-Dokument angeben werden, damit die Transformation ausgeführt werden kann. Zusätzlich können über file
auch Ressourcen definiert werden (wie z.B. "CSS Stylsheets), die später z.B. bei der Konvertierung des Ausgabedokuments (z.B. HTML) benötigt werden. Die Daten des file
Element werde BASE64 encoded übergeben.
Für die XSLT-Transformation verwendet der webPDF-Server die Bibliothek "Saxon-HE" in der Version 12. Bei der Definition und Anwendung der Transformationen gelten die technischen Möglichkeiten und Begrenzungen der Bibliothek.
Aktuell wird bei der XSLT-Transformation die OpenSource-Implementierung von XSLT 3.0, XPath 2.0 and 3.1, and XQuery 3.1 unterstützt. Bitte beachten Sie die entsprechenden Hinweise bzgl. der Limitierung in der Umsetzung unter https://www.saxonica.com/products/feature-matrix-12.xml der Bibliothek "Saxon-HE".
Neben der allgemeinen Transformation können spezielle XML-Daten wie z.B. XRechnung vereinfacht transformiert werden, um ein visuelles Abbild zu erstellen. Dazu wird statt dem Element xslTransformation
das Element xRechnung
verwendet und die detaillierte Angabe der XSLT-Dokumente ist nicht notwendig. Details finden Sie unter "XRechnung".