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.

 

hint

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:

 
<?xml version="1.0" encoding="utf-8"?>
<operation xmlns="http://schema.webpdf.de/1.0/operation">
  <converter>
      <transform>
          <xslTransformation>
              <resources>
                  <file format="xslt">
                       ...BASE64 encoded...
                  </file>
              </resources>
          </xslTransformation>
      </transform>
      <html downloadImages="true"/>
      <pdfa>
          <convert level="3b"/>
      </pdfa>
  </converter>
</operation>

 

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), 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.

 

hint

Für die XSLT-Transformation verwendet der webPDF-Server die Bibliothek "Saxon-HE" in der Version 9.9 (http://saxon.sourceforge.net/). 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 Hinweis bzgl. der Limitierung in der Umsetzung unter http://saxon.sourceforge.net/#F9.9HE 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".