Formatting Objects (FO)

Formatting Objects (FO)

Formatting Objects (FO)

➪ Um XML mit XSL nach PDF (png, rtf, tiff, png, txt, ps, pcl) transformieren zu können, ist zunächst eine Konvertierung in das Zwischenformat Formatting Objects (FO) erforderlich.

pic/FO1.png

Um den Konvertierungsprozess nachvollziehen zu können, müssen Sie zunächst die Struktur von Formatting Objects verstehen und auch die Werkzeuge kennen, die die Transformation von FO nach PDF (oder ein anderes Zielformat) durchführen.

Generierung von PDF

Das FO-Dokument ist ein XML-Dokument mit dem Namespace http://www.w3.org/1999/XSL/Format. Das fo:root-Element hat in seiner "Minimalausstattung" mindestens zwei Childe-Eemente:

Eine sehr einfache FO-Struktur finden Sie hier. Das Dokument beschreibt eine PDF-Seite im DIN-A4-Format (297 * 210 mm) mit diversen Seitenrändern sowie dem Textinhalt "Hallo Leute von heute".


<?xml version="1.0" encoding="ISO-8859-1"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
 <fo:layout-master-set>
  <fo:simple-page-master 
     margin-right="15mm" 
     margin-left="2cm" 
     margin-bottom="1cm" 
     margin-top="2cm" 
     page-width="21cm" 
     page-height="297mm" 
     master-name="layout1">
   <fo:region-body />
  </fo:simple-page-master>
 </fo:layout-master-set>
 <fo:page-sequence master-reference="layout1">
  <fo:flow flow-name="xsl-region-body">
   <fo:block>Hallo Leute von heute</fo:block>
  </fo:flow>
 </fo:page-sequence>
</fo:root>

Um dieses FO-Dokument in PDF konvertieren zu können, benötigen Sie noch eine spezielle Software, die Sie herunterladen können, beispielsweise in der Version 2.2.


https://xmlgraphics.apache.org/fop/download.html

Die heruntergeladene Zip-Datei können Sie an beliebiger Stelle in Ihrem Verzeichnis entpacken (bei mir: "C:\wg\fop-2.2"). Gehen Sie in dieses Verzeichnis, so werden Sie mehrere Dateien und Unterverzeichnisse finden.

pic/FOP_apache.png

Speichern Sie der Einfachheit halber das oben definierte FO-Dokument in dasselbe Verzeichnis, beispielsweise unter dem Namen "FOtest.fo" (bitte aufpassen: nicht speichern mit der möglicherweise automatisierten Endung ".txt", damit der Dateiname nicht fälschlicherweise "FOtest.fo.txt" lautet).

Nun gehen Sie mit der Eingabeaufforderung in dasselbe Verzeichnis (bei mir mit "cd C:\wg\fop-2.2") und starten die Transformation mit dem Kommando


C:\wg\fop-2.2>fop -fo FOtest.fo -pdf FOtest.pdf

Wenn alles richtig läuft, reagiert das System fix mit einer Erfolgsmeldung dieser Art:


Feb 04, 2018 2:56:12 PM 
    org.apache.fop.events.LoggingEventListener processEvent
INFORMATION: Rendered page #1.

In demselben Verzeichnis finden Sie dann eine neue Datei "FOtest.pdf", die Sie gern per Doppelclick öffnen können. Sie haben ein PDF-Dokument mit den inhaltsschweren Worten "Hallo Leute von heute".

Versuchen Sie analog auch die Kommandos für png, txt, ps, pcl; auch hier sollten Sie jeweils eine neue Datei erhalten, die sich mit geeigneten Programmen auch lesen lässt.


C:\wg\fop-2.2>fop -fo FOtest.fo -png FOtest.png
C:\wg\fop-2.2>fop -fo FOtest.fo -txt FOtest.txt
C:\wg\fop-2.2>fop -fo FOtest.fo -ps FOtest.ps
C:\wg\fop-2.2>fop -fo FOtest.fo -pcl FOtest.pcl

Eine lesenswerte Übersicht erhalten Sie mit dem Kommandoaufruf


C:\wg\fop-2.2>fop -?

Apache FOP ist nicht das einzige Tool, das eine FO-Transformation unterstützt; Antenna House, RenderX XEP, Altsoft XML2PDF oder Compart DocBridge MFF-XSL-FO Filter stehen ebenfalls zur Verfügung. Die Unterstützung für den FO-Standard ist keineswegs einheitlich.

Leistungsfähige XML-Powertools bieten dieselbe bzw. eine erweiterte Unterstützung bei der Konvertierung. Laden Sie die Datei FOtest.fo beispielsweise in den Oxygen XML Editor 19, so wird Ihnen umgehend ein Transformations-Szenario angeboten, das die FO-PDF-Transformation durchführt.

pic/FO_oxygen1.png

wg / 13. April 2018



Fragen? Anmerkungen? Tips?

Bitte nehmen Sie Kontakt zu mir auf.






Vielen Dank für Ihr Interesse an meiner Arbeit.


V.i.S.d.P.: Wilfried Grupe * Klus 6 * 37643 Negenborn

☎ 0151. 750 360 61 * eMail: info10@wilfried-grupe.de

www.wilfried-grupe.de/FO1_.html