Kommandozeilenkonverter für Office-Formate

Aus LinuxUser 05/2003

Kommandozeilenkonverter für Office-Formate

Verwandlungskünstler

Der Allgegenwart der verbreiteten Office-Formate kann sich niemand entziehen. Konvertierungsprogramme für die Kommandozeile sorgen dafür, dass der Inhalt entsprechender Dokumente auch ohne die Ursprungsanwendungen einsehbar bleibt.

Trotz vielfacher Bitten schickt Ihnen Ihr Geschäftspartner grundsätzlich MS-Word-Dokumente? Sie haben für einen schnellen Blick in eine StarWriter-Datei keine Lust, fünf Minuten zu warten, bis das Office-Paket endlich gestartet ist? Man muss nicht grundsätzlich eine Abneigung gegen riesige Office-Suites haben, um deren spezifische Formate in etwas schneller und/oder allgemeiner Lesbares umwandeln zu wollen.

Für die Lösung dieses Problems sorgen diverse Konvertierungsprogramme für die Kommandozeile, und deren gibt es gar nicht mal so wenige. Tabelle 1 verschafft einen Überblick: Sie enthält auch Anwendungen, die dieser Artikel nicht ausführlich bespricht.

Tabelle 1: Office-Konvertierer für die Kommandozeile

Name Leistungsumfang Qualität der Ergebnisse
o3read Wandelt sxw– und sxc-Dateien in Text oder HTML. Siehe Text.
sxw2html[8] und sxw2txt[9] Konvertierung von sxw-Dateien nach Text oder HTML per Shellskript. Zur HTML-Anzeige wird lynx gestartet. Struktur bleibt erhalten, Formatierung nicht. Mangels Zeichensatzkonvertierung Probleme bei der Darstellung von Umlauten.
sdw2txt[10] Konvertiert StarWriter-5.x-Dateien in Text. Dokumentstruktur bleibt teilweise erhalten. Teile des Dokuments werden unterschlagen, z. B. Tabellen oder Absender bei Briefen. Nur für einfache Dokumente brauchbar.
wv Konvertiert Word-Dateien in eine Vielzahl von Formaten. Siehe Text.
antiword Wandelt Word-Dateien nach Text oder Postscript. Siehe Text.
catdoc[11] Konvertiert Word-Dateien in Text. Dem Programm liegt ein auf der Tk-Bibliothek basierender Viewer für die Ausgabe und ein Tool zum Umwandeln von Excel-Dateien in Komma-separierte Listen bei. Dokumentstruktur bleibt teilweise erhalten. Dennoch nicht besonders gut für Formulare oder Tabellen geeignet, da die Ausgabe zu unübersichlich ist.
xlhtml Umwandlung von Excel-Dokumenten in HTML-Dateien, Umwandlung einzelner Bereich auch in reinen Text möglich. ppthtml extrahiert Text aus Powerpoint-Dateien. Siehe Text.
chmlib Konvertiert unter Windows verbreitete Hilfe-Dateien im chm-Format in mehrere HTML-Dateien. Siehe Text.
wp2x[12] Konvertiert Word-Perfect-5.1-Dateien in unterschiedliche Formate. Dokumentstruktur und Formatierungen bleiben größtenteils erhalten. Eingeschränkter Nutzwert durch Seltenheit des Ursprungsformats.

OpenOffice und StarOffice

Trotz der Tatsache, dass Open- und StarOffice unter Linux zur Verfügung stehen, hat nicht jeder diese nicht gerade schlanken Pakete installiert. Eine schnelle Möglichkeit, um sich einen Überblick über den Inhalt der damit erzeugten Dokumente zu verschaffen, bietet o3read[1]. Dieses Tool weiß sowohl mit Dokumenten der Textverarbeitung als auch mit denen der Tabellenkalkulation umzugehen.

Das o3read-Paket bringt drei Ausgabemodule mit, wovon o3tohtml die besten Ergebnisse liefert. Daneben gibt es das Programm o3totxt, welches die Dokumente in Text umwandelt, und o3read selbst, das tabellarisch die verwendeten XML-Tags und deren Werte ausgibt.

An die Bedienung der drei Programme muss man sich erst einmal gewöhnen, denn sie können mit sxw– und sxc-Dateien nichts anfangen. Bei diesen, mit OpenOffice und StarOffice ab Version 6.0 erstellten Textverarbeitungs- und Tabellenkalkulationsdateien handelt es sich um komprimierte Archive. Packt man sie aus, kommen xml-Dateien zum Vorschein. Der Inhalt des Dokuments befindet sich in content.xml.

Die o3read-Tools überlassen das Entpacken des Archivs dem Benutzer. Der benötigt zu diesem Zweck das Programm unzip. Auf die content.xml-Datei lässt sich o3tohtml folgendermaßen anwenden:

unzip -p dokument.sxw content.xml | o3tohtml > dokument.html

Dieser Befehl holt die Datei context.xml aus dem Star- bzw. OpenWriter-Dokument dokument.sxw auf die Standardausgabe. Die Pipe () reicht ihren Inhalt an o3tohtml weiter. Dessen Ausgabe leitet der “Pfeil” > in eine Datei namens dokument.html um.

Auch die anderen beiden Ausgabemodule des o3read-Pakets rufen Sie am besten in dieser Form auf. Sollten Sie nach der Konvertierung feststellen, dass Umlaute und Sonderzeichen nicht richtig dargestellt werden, liegt das daran, dass das Ursprungsdokument UTF8-kodiert war. Auch für diesen Fall ist vorgesorgt: Das bei o3read mitgelieferte Hilfsprogramm utf8tolatin1 schafft Abhilfe. Der Aufruf sieht dann so aus:

unzip -p tabelle.sxc content.xml | o3tohtml | utf8tolatin1 > tabelle.html

Die Ausgabe von o3tohtml reicht die Pipe an utf8tolatin1 weiter, welches für die Zeichensatzkonvertierung sorgt, bevor die Ausgabe in eine Datei erfolgt.

Schaut man sich die Arbeitsweise der Programme an, wird gleich auch deren Schwäche deutlich. sxw– und sxc-Archive bestehen noch aus weiteren xml-Dateien, die Meta-Informationen zu den Dokumenten speichern, ebenso können sie Unterordner mit eingebetteten Bildern enthalten. Auf all diese Formatinformationen müssen Sie bislang bei einer Konvertierung verzichten. Einige Formatierungen wie kursiver oder unterstrichener Text bleiben jedoch ebenso erhalten wie die grundlegende Struktur eines Dokuments.

Für Tabellen ist o3totxt nicht zu gebrauchen: Da die Ausgabe zeilenweise erfolgt, geht dabei jede Übersicht verloren. Dafür punktet o3tohtml in dieser Disziplin mit sehr ansprechenden Ergebnissen.

Wort-Konversion

Um maßlose Verwunderung im Bekanntenkreis zu wecken, reicht ein beherztes “Isch ‘abe gar kein Word” meistens völlig aus. Fast jedem neuerworbenen PC beiliegend, stellt Microsoft Word den De-facto-Standard auf dem Gebiet der Textverarbeitung dar. Aufgrund dieser großen Verbreitung ist es nicht verwunderlich, dass für die Office-Anwendung die meisten Konverter existieren. Obwohl Microsoft das Word-Format nicht offenlegt, müssen die sich ihrer Leistung nicht schämen. Den populärsten Vertreter stellt wohl wv[2] dar.

Mehr als 15 Einzelprogramme bringt dieses Paket mit. Einige bieten Ausgaben rein informativer Natur, etwa wvVersion, welches ermittelt, mit welcher Word-Version ein Dokument erstellt wurde. wvSummary gibt für alle MS-Office-Dokumente Informationen wie Titel und Autor aus. Der überwiegende Teil der Anwendungen arbeitet jedoch als Ausgabemodul. Deren Namen sind selbsterklärend: So wandelt wvHtml Word-Dateien ins HTML-Format, wvLatex überführt sie hingegen in eine tex-Datei. Weitere Ausgabemodule übernehmen die Umwandlung nach PostScript, RTF oder DVI, wobei sich manche Module externer Hilfsprogramme bedienen. Ihr Aufruf ist denkbar einfach:

wvHtml dokument.doc dokument.html

Vergessen Sie dabei nicht, die Dateiendung der Ausgabedatei je nach verwendetem Modul anzupassen.

Den Zugriff auf eine mit Passwort geschützte Word-Datei erlaubt wvWare. Der Befehl

wvWare -p Geheim dokument.doc > dokument.html

wandelt das mit dem Passwort Geheim geschützte File dokument.doc nach HTML. Da wvWare im Gegensatz zu den einzelnen Ausgabemodulen auf die Standardausgabe schreibt, ist die Umleitung in eine Datei nötig.

Die wv-Programme liefern durchgehend gute Ergebnisse (Abbildungen 1 und 2), bei denen sowohl die Dokumentstruktur, als auch Grafiken und Formatierungen erhalten bleiben, sofern das gewählte Ausgabeformat dies zulässt.

Abbildung 1: Das ursprüngliche Word-Formular …

Abbildung 1: Das ursprüngliche Word-Formular …

Abbildung 2: … und die von wvHtml konvertierte Version

Abbildung 2: … und die von wvHtml konvertierte Version

Je nach Dokument lohnt es sich, mit verschiedenen Ausgabeformaten zu experimentieren. Die beste Darstellung eingebundener Grafiken erreicht man mit wvPDF, welches jedoch alle im Text vorkommenden Euro-Zeichen unterschlägt. Für Dokumente mit Preistabellen ist daher wvHtml die bessere Wahl.

Ebenbürtiger Gegner

Ebenfalls populär ist antiword [3,4], das doc-Dateien entweder ins Textformat oder nach PostScript umwandelt. Besonders die Textkonvertierung ist gelungen, da sie das Maximum aus dem Format herausholt. Dabei gelingt es antiword, die Struktur so nah wie möglich am Original darzustellen (Abbildung 3), und selbst im Dokument enthaltene Grafiken finden mittels eines Platzhalters ([pic]) Erwähnung.

Abbildung 3: Von antiword erstellte Textversion

Abbildung 3: Von antiword erstellte Textversion

Will man auch die Grafiken sehen, empfiehlt sich die Konvertierung nach PostScript mittels

antiword -p a4 -i 3 dokument.doc > dokument.ps

Der Parameter -p legt dabei das Papierformat fest. Unabhängig davon, welches Image-Level (Parameter -i) genutzt wird, stellt antiword einige Grafiken leider nur verzerrt dar. Enthält das Dokument Euro-Zeichen, geben Sie mit dem zusätzlichen Parameter -m 8859-15 den passenden Zeichensatz an. Wer ein Dokument nicht langfristig speichern, sondern nur ausdrucken will, leitet es mittels

antiword -p a4 -i 3 dokument.doc | lp

gleich an den Drucker weiter.

Tabellenwandler

Sollten Sie den LinuxUser bereits eine Weile lesen, kennen Sie mit xlhtml [5,6] bereits ein Tool, welches Excel-Dateien nach HTML konvertiert. Mit dem Befehl

xlhtml tabelle.xls > tabelle.html

erstellen Sie eine mit jedem Browser lesbare HTML-Datei, und dank reichhaltiger Aufrufparameter haben Sie die Möglichkeit, nur einzelne Reihen (-xr), Spalten (-xc) oder Tabellenseiten (-xp) auszulesen. Nutzen Sie einen dieser Bereichsparameter, stehen Ihnen auch die reine Textausgabe (-asc) oder der Export in eine kommaseparierte Liste (-csv) zur Verfügung. Letztere kann man zum Beispiel in eine MySQL-Datenbank importieren.

Die Güte der Ergebnisse ist dabei durchwachsen und hängt stark vom Ausgangsdokument ab. Einfache Tabellen konvertiert xlhtml perfekt; weniger schön sieht es aus, wenn einzelne Zellen das Ergebnis von Berechnungen enhalten. Jede dieser Zellen zieren zwei @L: *, und in der Fußzeile informiert xlhtml den Nutzer, dass die Ergebnisse eventuell nicht korrekt seien. Dies jedoch stellte sich bei allen getesteten Dokumenten als Fehlalarm heraus. Noch nicht unterstützte Datenformate kennzeichnet der Konverter übrigens mit drei @L: *.

Wer das Pech hat, die Informationen der HTML-Ausgabe von xlhtml nicht lesen zu können, da das Programm schwarze Schrift auf schwarzem Grund produziert hat, kann den Aufrufparameter -nc (“no color”) als Rettungsanker verwenden. Er sorgt für eine reine Schwarz-Weiß-Darstellung. Die Ursache für dieses seltsame Verhalten scheint sich in der Kreativität des Dokumenterstellers zu begründen, denn es trat reproduzierbar bei Dokumenten auf, deren einzelne Zellbereiche in vielen unterschiedlichen Hintergrundfarben gestaltet wurden. Betroffen von der Schwärzung waren jedoch nicht die bunten Zellbereiche, sondern nur jene mit ursprünglich weißem Hintergrund.

Große Excel-Arbeitsmappen bringen xlhtml, von kleinen Schönheitsfehlern abgesehen, nicht aus dem Tritt. Als Testdokument diente eine Excel-Mappe mit neun Tabellenblättern, auf welche sich weit über 2000 Datensätze verteilten. Der Befehl

xlhtml -nc rst.xls > restaurants.html

erzeugte eine HTML-Datei, die die einzelnen Tabellen übersichtlich hintereinander dargestellt aufführt (Abbildung 4).

Abbildung 4: Von xlhtml konvertierte Excel-Datei

Abbildung 4: Von xlhtml konvertierte Excel-Datei

Der in einigen Zellen zu lesende Text String Table Error bietet keinen Anlass zur Besorgnis, da die betroffenen Zellen zuvor leer waren. Er hängt vermutlich mit der Datentyp-Formatierung der Zellen im Ursprungsdokument zusammen.

Um sich einen Überblick über die in einer Excel-Datei gespeicherten Informationen zu verschaffen ist xlhtml durchaus brauchbar, da es keine Zelleninhalte auslässt oder falsch darstellt. Bei komplexen Dokumenten bleibt jedoch, auch wegen der sehr mitteilsamen Art von xlhtml, ein ungutes Gefühl, solange man das Konvertierungsergebnis nicht anhand des Originaldokuments kontrollieren kann.

Für Powerpoint-Dateien hat der Autor von xlhtml das Programm ppthtml beigelegt, welches jedoch eher eine Willenserklärung als eine Konvertierungslösung darstellt. Es extrahiert aus den ppt-Dateien lediglich den Text, und selbst dabei bleiben keinerlei Formatinformationen erhalten. Für Präsentationen, die gewöhnlich viele Bilder und Diagramme enthalten, stellt ppthtml daher leider noch keine brauchbare Lösung dar.

Unlesbare Hilfe …

Ein zunehmendes Ärgernis sind die immer häufiger vorkommenden chm-Dateien. Ob Prospekte oder Anleitungen zu neu gekaufter Hardware – immer mehr Anbieter meinen, dem Benutzer mit diesem Format etwas Gutes zu tun. Auf jedem neuen Windows-System mit Bordmitteln lesbar, schauen Linux- und Windows-95-Nutzer jedoch erst einmal in die Röhre.

Zwar keinen fertigen Konverter, jedoch eine Schnittstelle zum Zugriff auf chm-Dateien bietet die chmlib[7]. Außer der für Programmierer interessanten Bibliothek selbst liefert der Autor einige, allerdings nicht sehr komfortable, Beispielanwendungen mit.

Tückenreich gestaltet sich auch die Installation der Bibliothek: Die erste Falle lauert im Makefile, das das Programm gcc-3.2 als Compiler vorsieht. Falls Sie diese Version nicht nutzen, ändern Sie die Zeilen

CC=gcc-3.2
LD=gcc-3.2

in

CC=gcc
LD=gcc

Sofern der gcc bei Ihnen installiert ist, sollte er im Suchpfad der Shell liegen, und sei es nur in Form eines Links auf die eigentliche Programmdatei. Für Übersetzung und Installation sorgen im Anschluss die Aufrufe von make und make install, wovon letzteres durch root erledigt werden muss. Ist das geschafft, verfügen Sie jedoch immer noch nicht über die Beispielanwendungen. Dafür müssen Sie zunächst im Source-Verzeichnis der chmlib den Befehl

make examples

aufrufen und die entstandenen Programme enum_chmLib, test_chmLib, extract_chmLib und enumdir_chmLib als Superuser root ins Verzeichnis /usr/local/bin kopieren.

…lesbar gemacht

Um den gesamten Inhalt einer chm-Datei zu extrahieren, rufen Sie nun

extract_chmLib hilfe.chm Ausgabeverzeichnis

auf. Anschließend enthält das Ausgabeverzeichnis HTML-Dateien mit dem Inhalt der chm-Datei, jedoch müssen Sie meistens auf einen Navigationsindex verzichten. Zumindest funktionieren die in den HTML-Files angegebenen Links, und auch Bilder werden dargestellt.

Das Programm enum_chmLib listet die Inhalte einer chm-Datei aus. Daran sieht man recht gut, dass eine solche Datei intern über eine Art Verzeichnisbaum verfügt. Merken Sie sich einen der Pfade, so lassen sich mit dem Befehl

test_chmLib hilfe.chm /wunschdatei.htm ausgabe.html

auch einzelne Dateien extrahieren. Dieses Prozedere hat natürlich den Nachteil, dass Links in der exportierten Datei mangels extrahierter Zieldateien ins Leere zeigen.

Bei all diesen Bemühungen vergisst man jedoch allzu leicht, dass diese Verrenkungen gar nicht nötig wären, würden Verfasser von Dokumenten ein wenig mehr Rücksicht walten lassen. Wollen Sie selbst mit gutem Beispiel vorangehen und zur Reduzierung des Formatchaos beitragen, finden Sie in Kasten 1 Hinweise, wie Sie PDF-Dokumente erstellen, die auf fast jedem System lesbar sind.

Kasten 1: Formatchaos vermeiden @KL:Mit PDF steht ein Format zu Verfügung, welches wohl auf nahezu jedem System gelesen werden kann. Für die Weitergabe von Dokumenten, auf die nur Lesezugriff nötig ist, bietet sich das “<I>P<I>ortable <I>D<I>ocument <I>F<I>ormat” also geradezu an. Eine einfache Möglichkeit zur PDF-Erstellung besteht darin, Office-Anwendungen in eine Datei drucken zu lassen und das Ergebnis mittels <I>ps2pdf<I> in eine <I>pdf<I>-Datei umzuwandeln. Nicht weiter verwunderlich geht auch das auf der Kommandozeile vonstatten, z. B. mit dem Befehl

ps2pdf dokument.ps ausgabedokument.pdf

ps2pdf gehört zum ghostscript-Paket und ist daher wahrscheinlich schon auf Ihrem System installiert.

Noch leichter haben es Benutzer neuerer KDE-Versionen, da sie direkt in eine pdf-Datei drucken können. Gehören auch Sie zu den Glücklichen, wählen Sie im Druckdialog der KDE-Anwendung statt Ihres Druckers den Eintrag Print to File (PDF).

Glossar

XML
Bei der “Extensible Markup Language” handelt es sich um eine Metasprache zur Definition von Dokumenttypen. Anders als HTML kennt XML nicht nur Tags für Format- und Strukturanweisungen, sondern auch semantische Tags, die rein beschreibenden Inhalt haben.
chm
Abkürzung für “Compiled HTML Manual”. Der Vorteil dieses Hilfeformats neuerer Windows-Versionen gegenüber reinem HTML liegt in der Kompression und der damit verbundenen Platzersparnis begründet. Zusätzlich stehen unter Windows erweiterte Funktionen, wie eine Navigationshilfe in Form eines Strukturbaums, zur Verfügung.
LinuxUser 05/2003 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben