Zum Hauptinhalt springen

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.

Tipp

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.

Hinweis

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".