Kapitel 6. DocBook Publishing mit OpenOffice

Inhaltsverzeichnis

Eine sehr einfach Möglichkeit mit DocBook zu arbeiten ist die Verwendung von OpenOffice als Editor. OpenOffice verwendet von Hause aus XML als Dateiformat, daher ist es naheliegend an eine Konversion von OpenOffice Writer Dateien zum DocBook zu denken. In der Tat ist der Weg relativ leicht. Folgende Schritte sind notwendig:

Damit besser verständlich ist, wie das genau vor sich geht, soll der Vorgang kurz erläutert werden.

OpenOffice speichert seine Dokumente in Dateien mit der Endung swx. Diese Dateien sind eigentlich ZIP-Archive[4], die mehrere XML-Dateien enthalten. Man kann die einzelnen Dateien also leicht extrahieren und neu zusammenstellen.

Um am Ende besser mit XSLT transformieren zu können, packt man nun die einzelnen XML-Dateien zu einer großen zusammen, wobei die verschiedenen Teilebereiche weiterhin durch Namespaces getrennt bleiben.

Bilder werden von OpenOffice direkt in die XML-Datei eingebettet und als Base64 in der XML-Datei gespeichert. Leider können die üblichen DocBook Stylesheets mit so eingebetteten Bildern nichts anfangen sondern erwarten, dass Bilder extern zur XML-Datei gespeichert werden.

All diese Schritte werden von einem kleinen Python-Modul von Eric Bellot erledigt. Es kann entweder hier bezogen werden, ist aber auch Teil des dieses Frameworks selbst.

Die anschließende Transformation wird mit Hilfe eines speziellen Stylesheets mit einem beliebigen XSLT-Prozessor (hier saxon) durchgeführt. Das Stylesheet von Eric Bellot wurde für dieses Framework noch etwas verbessert und es existieren mehrere Varianten davon, je nach dem, ob man ein „Book“ oder einen „Article“ schreiben möchte.

6.1. Zusammenspiel zwischen OpenOffice und DocBook

OpenOffice verwendet für Formatierungen Absatzformate, Zeichenformate und Rahmenformate. Diese sind benannt und an bestimmte Layoutregeln geknüpft. Die Verbindung zwischen DocBook und OpenOffice wird genau über diese vordefinierten Formate hergestellt. Wenn ein Satz bespielweise einen Filenamen enthält, dann wird er in OpenOffice mit dem Zeichenformat „Filename“ formatiert und später in <filename>...</filename> konvertiert.

Mit Absatzformaten für Aufzählungen oder nummerierte Listen verhält es sich genauso, in OpenOffice werden diese wie gewohnt verwendet und dann automatisch in die DocBook Entsprechungen umgesetzt. Damit das immer richtig funktioniert, sollte man allerdings immer eine bestimmte Dokumentvorlage bzw. ein leeres Startdokument verwenden. Ein solches Dokument ist dem Framework beigefügt.

Die meisten korrospondieren Formate / Tags sind intuitiv, die ausführlichere Darstellung liefert Eric Bellot auf seiner Seite.

Fussnoten

[4] Man kann sie tatsächlich z.B. einfach mit WinZip öffnen