Grenzen von XSL-FO

Die automatische Erzeugung von PDF-Dateien aus XML-Daten mittels XSL-FO und einem FO-Prozessor ist der natürliche Konkurrent für XML-Publishing-Prozesse, die FrameMaker als Formatierer verwenden.

Aber wie weit können XSL-FO-Prozesse gehen oder, besser gefragt, was leisten diese Prozesse derzeit nicht. Auskunft darüber gab eine aktuelle Diskussion in der XSL-Mailing-Liste, die ich kurz zusammenfassen möchte (Link zum ersten Beitrag der Diskussion).

Generell muss man unterscheiden zwischen inhaltsbestimmten (content driven) und layoutbestimmten (layout driven) Publikationen. Für letztere, also zum Beispiel anspruchsvolle Bücher, Zeitschriften, Magazine, ist XSL-FO weder gedacht noch geeignet.

  • Wenn es Inhalte gibt, deren Erscheinungsbild davon abhängt, wo auf einer Doppelseite es »zu liegen« kommt, gibt es mit XSL-FO Probleme, die möglicherweise nur mit FO-Prozessor-spezifischen Funktionen zu lösen sind.
  • Typografische Details wie Buchstaben-Unterschneidung, aber auch automatische Silbentrennung lagen bislang nicht im Fokus der Entwicklung von FO-Prozessoren.
  • Restriktionen bezüglich der Seitenanzahl, die traditionell zum Beispiel durch »Verkleinern, bis es reinpasst« gelöst werden, können mit XSL-FO nicht umgesetzt werden.
  • »Absätze zusammenhalten« (keep with next) wird von den kommerziellen FO-Prozessoren besser unterstützt als von den kostenlosen Varianten.
  • Der Umgang mit Grafiken unterschiedlicher Größe sollte so standardisiert sein, dass nicht erst der FO-Prozessor damit befasst sein muss. Wenn es sehr komplexe Zusammenhänge zwischen Grafikgröße und resultierendem Layout gibt (zum Beispiel mit umfließendem Text), ist das ein Zeichen für eine layoutbestimmte Publikation.

Als Fazit waren sich die Experten einig: Wenn ein Publikationsprozess oft genug benötigt wird und man bereit ist beim Layout auf die Grenzen des XSL-FO-Prozesses bzw. FO-Prozessors Rücksicht zu nehmen, kann es durchaus attraktiv (also: performant und kostengünstig) sein PDF-Dateien direkt aus XML-Quellen zu erzeugen.

Dieser Beitrag wurde unter FrameMaker, XML/XSL abgelegt und mit , , verschlagwortet. Setze ein Lesezeichen auf den Permalink.