claim.gif
Linux Magazin Linux User Easy Linux Ubuntu User International Linux Community
Erschienen in EasyLinux 08/2006   »   Ausgabe bestellen

Konvertierungs-Tools für Office-Dokumente

Verwandlung auf Kommando

Heike Jurzik


Simsalabim -- wie Zauberei sieht es aus, wenn ein einziger Shell-Befehl Dateien in andere Formate verwandelt. Statt mehrerer Mausklicks in einem grafischen Programm reicht in der Regel ein Kommando aus: Wir zeigen Konvertierungskünstler für die Konsole.

Austausch zwischen verschiedenen Dateiformaten bedeutet nicht zwingend jede Menge Arbeit mit der Maus und den Start verschiedener Programme. Linux bietet zahlreiche Kommandozeilentools, mit denen Sie schnell auf der Shell zaubern.

OpenOffice-Formate konvertieren

Der Start von OpenOffice kann gerade auf etwas betagteren Rechnern ein bisschen dauern -- wer sich einen schnellen Überblick über Writer- und Calc-Dokumente verschaffen möchte, muss nicht die Office-Suite auf den Plan rufen. Diverse Tools aus dem o3read-Paket [1] konvertieren die Dokumente der Textverarbeitung (Dateiendung .sxw) und Tabellenkalkulation (Dateiendung .sxc) in reinen Text oder auch in HTML-Dateien. Pakete für alle von EasyLinux unterstützten Distributionen sowie eine Installationsbeschreibung finden Sie auf der Heft-CD. (Neuere OpenOffice-Versionen benutzen andere Dateiformate mit den Endungen .odt und .ods -- diese Formate konvertiert das Tool auch, aber mit schlechteren Ergebnissen.)

Bei den .sxw- und .sxc-Dokumenten handelt es sich um Zip-Archive, wie die Ausgabe des Programms file auf der Kommandozeile verrät:

$ file datei.sxw
datei.sxw: Zip archive data, at least v2.0 to extract

Eingepackt sind gleich mehrere Dateien; den eigentlichen Inhalt des Dokuments finden Sie jeweils in der Datei content.xml. Zum Auspacken eines solchen Archivs klicken Sie beispielsweise in KDEs Dateimanager Konqueror mit der rechten Maustaste auf das Dokument und wählen aus dem Kontextmenü Öffnen mit. Geben Sie als Programmnamen ark [2] ein und wählen Sie anschließend aus dem Drop-down-Menü Zip-Archiv aus. Alternativ gehen Sie auf die Shell und verwenden das Programm unzip [3]. Der folgende Aufruf entpackt das Archiv im aktuellen Verzeichnis:

$ unzip datei.sxw
Archive:  datei.sxw
 extracting: mimetype
 extracting: Pictures/huhn.gif
  inflating: content.xml
...

Vorsicht: Dabei landen alle Dateien im aktuellen Verzeichnis.

Um einen Blick in content.xml zu werfen, wandeln Sie die XML-Datei z. B. schnell ins Textformat um. Das Tool o3totxt erwartet, dass Sie zunächst über den <-Operator die einzulesende Datei, und dann über den >-Operator [4] die Ausgabedatei angeben:

o3totxt < content.xml > datei.txt

Alternativ konvertieren Sie das Dokument mit dem folgenden Befehl in eine HTML-Datei:

o3tohtml < content.xml > datei.html

Einen Arbeitsschritt sparen Sie ein, wenn Sie das Auspacken des Archivs und das Konvertieren miteinander verknüpfen. Die gerade gezeigten Kommandos schreiben Sie alternativ als

unzip -p datei.sxw content.xml | o3totxt > datei.txt

bzw.

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

Diese Befehle extrahieren die Datei context.xml aus dem .sxw-Dokument und schreiben sie auf die Standardausgabe. Über die Pipe (|) leiten Sie die Ausgabe an das jeweilige o3read-Programm weiter; das Ergebnis landet über den >-Operator wiederum in der Zieldatei.

Werden nach der Konvertierung Umlaute und Sonderzeichen nicht richtig dargestellt, ist das OpenOffice-Dokument eventuell UTF8-kodiert. Das o3read-Paket liefert das Tool utf8tolatin1 mit, das den Zeichensatz anpasst. Leiten Sie die Ausgabe von o3totxt bzw. o3tohtml über ein Pipe-Zeichen [4] ([AltGr-<]) an utf8tolatin1 weiter und speichern Sie erst dann das Ergebnis als neue Datei ab:

unzip -p datei.sxw content.xml | o3totxt | utf8tolatin1 > datei.txt

bzw.

unzip -p datei.sxw content.xml | o3tohtml | utf8tolatin1 > datei.html

Abbildung 1 zeigt das OpenOffice-Dokument in Writer, als reine Textdatei im Editor KWrite und als HTML-Datei in Konqueror. Mit einfachen Formatierungen und der grundlegenden Struktur haben die o3read-Programme keine Probleme, Meta-Informationen zu den Dokumenten, Tabellen sowie Abbildungen gehen bei einer Konvertierung allerdings verloren. Wer lediglich einen schnellen Blick auf den Inhalt werfen möchte, findet in den o3read-Tools aber schnelle Helfer.

Abb. 1: Die Tools des "o3read"-Pakets verwandeln Ihre OpenOffice-Dokumente in Text- und HTML-Dateien.

Microsoft-Word-Dokumente

Versuchen Sie, ein Word-Dokument in einem Texteditor wie Kate zu betrachten, sehen Sie den Inhalt vor lauter Sonderzeichen nicht mehr: Neben dem eigentlichen Text enthalten diese Dokumente vor allem binäre Steuerzeichen.

Glücklicherweise gibt es für Linux mehrere Programme, die Word-Dateien in andere Formate umwandeln: Die wvWare-Tools [5] verrichten nicht nur im Hintergrund der grafischen Textverarbeitung AbiWord gute Dienste, sondern stehen auch auf der Shell als separate Kommandos zur Verfügung.

Benutzer von Suse Linux 10.0 und 10.1 spielen das Paket wv von den offiziellen Distributionsmedien ein; weiterhin ist eine Installation von te_latex und imagemagick erforderlich. Auch Mandriva-2006-Anwender finden das Paket wv auf den offiziellen Medien; die Abhängigkeiten zu anderen Programmen löst RpmDrake automatisch auf. Wer mit Kubuntu 6.06 arbeitet, spielt das Programm von der Heft-DVD ein.

Um herauszufinden, mit welcher MS-Word-Version eine Datei erstellt wurde, nehmen Sie das Tool wvVersion zur Hilfe:

$ wvVersion datei1.doc
Version: word8 or higher, Encrypted: No
$ wvVersion datei2.doc
Version: word6, Encrypted: No

Noch mehr erfahren Sie mit dem Programm wvSummary: Es verrät Titel und Autor (wenn diese Daten im Dokument gespeichert sind) sowie Programmversion, Seiten-, Wort- und Zeichenanzahl.

Auch Konvertierungskünstler gehören zum Paket: wvText wandelt in reinen ASCII-Text, wvHtml macht aus Word-Dokumenten HTML-Dateien, wvPDF erstellt PDF- und wvPS PostScript-Dateien. Alle Befehle rufen Sie jeweils mit den Namen von Eingabe- und Zieldatei auf:

wvPS datei.doc datei.ps
wvPDF datei.doc datei.pdf
wvHtml datei.doc datei.html

Alternativ wandeln Sie .doc-Dateien mit Antiword [6] in Text- oder PostScript-Dateien um. Pakete für Suse Linux 10.0/10.1 und Kubuntu 6.06 finden Sie auf der Heft-DVD; Benutzer von Mandriva Linux 2006 spielen das Programm von den Distributionsmedien über RpmDrake ein.

Um ein Word-Dokument (datei.doc) in reinen Text zu konvertieren und in der Ausgabedatei datei.txt zu speichern, schreiben Sie auf der Konsole beispielsweise:

antiword datei.doc > datei.txt

Gefällt Ihnen die standardmäßig eingestellte Zeilenlänge von 76 Zeichen nicht, bestimmen Sie diese mit dem Parameter -w selbst:

antiword datei.doc -w 60 > datei.txt

Soll gar kein Zeilenumbruch stattfinden, erreichen Sie das über -w 0. Eingebettete Bilder zeigt Antiword in den Textdateien als "[pic]" an.

Auch mit Antiword können Sie PostScript-Dateien erstellen. Dazu geben Sie hinter der Option -p zusätzlich die Seitengröße an, z. B. a0 bis a5 für die DIN-Formate, letter (21,6 × 27,9 cm²), legal (21,6 × 35,6 cm²) oder tabloid (27,9 × 43,2 cm). Um ein Word-Dokument in eine PostScript-Datei im DIN-A4-Format zu konvertieren, schreiben Sie:

antiword -p a4 datei.doc > datei.ps

Sowohl die wvWare-Tools als auch Antiword arbeiten nur dann zuverlässig, wenn der Autor des Word-Dokuments Absatzformatvorlagen richtig verwendet hat. Während die wvWare-Tools Probleme mit den Sonderzeichen bei der Umwandlung in Textdateien haben (Abbildung 2), zeigt sich Antiword bei neueren MS-Word-Versionen nicht sehr kooperativ. Die Konvertierung in Text und PostScript funktioniert zwar anstandslos, Bilder in neueren .doc-Dateien gehen allerdings verloren.

Abb. 2: Die wvWare-Tools haben leichte Probleme mit Umlauten in Textdateien, sind sonst aber sehr zuverlässig.

PostScript- und PDF-Zauber

Im Paket ghostscript-libraries (Suse Linux 10.0 und 10.1), gs-common (Kubuntu 6.06) bzw. ghostscript (Mandriva Linux 2006) finden Sie einige praktische Helfer, die auf der Shell PostScript- und PDF-Dokumente konvertieren. Um beispielsweise eine solche Datei ins Textformat zu wandeln, schreiben Sie auf der Shell:

ps2ascii datei.ps > datei.txt

(Für PDF-Dateien sieht der Aufruf genauso aus.) Auch hier leiten Sie über den Operator > die Ausgabe direkt in eine Datei um.

Ebenso können Sie die beiden Formate PostScript und PDF ineinander konvertieren. Dazu nutzen Sie die Kommandos ps2pdf und pdf2ps: ps2pdf datei.ps und pdf2ps datei.pdf. Die Angabe der Zieldatei ist in beiden Fällen nicht nötig: Sowohl ps2pdf als auch pdf2ps schreiben das Ergebnis selbständig in ein Dokument, das sich aus dem Namen der Eingabedatei und der neuen Endung zusammensetzt. So liegt nach dem Befehl ps2pdf datei.ps beispielsweise eine neue Datei datei.pdf im aktuellen Verzeichnis, und pdf2ps datei.pdf erstellt die Datei datei.ps ebenfalls automatisch im Arbeitsverzeichnis.

Alleskönner im Einsatz

Das Programm a2ps [7] wandelt viele verschiedene Dateiformate ins PostScript-Format um und darf sich daher zurecht "Any to PostScript" nennen. Den Output des Programms schicken Sie entweder direkt an einen Drucker oder legen ihn zur weiteren Bearbeitung in einer PostScript-Datei ab. Benutzer von Suse Linux 10.0/10.1 und Mandriva Linux 2006 finden das gleichnamige Paket auf den Distributionsmedien; für Kubuntu 6.06 befindet sich ein Paket auf der Heft-DVD.

Bei allen a2ps-Kommandos gilt: Soll der Output nicht direkt an einen Drucker wandern, geben Sie jeweils als letzten Parameter über -o datei.ps die Ausgabedatei an. Eine Textdatei konvertieren Sie beispielsweise so ins PostScript-Format:

$ a2ps datei.txt -o datei.ps
[datei.txt (unformatiert): 2 Seiten auf einem Blatt]
[Insgesamt: 2 Seiten auf einem Blatt] in die Datei `datei.ps' geschrieben

Standardmäßig fasst a2ps zwei Seiten auf einem Blatt zusammen; normale Dokumente erhalten Sie, indem Sie zusätzlich -1 angeben, also z. B.:

a2ps -1 datei.txt -o datei.ps

Auch eine andere Aufteilung ist möglich: a2ps versteht die Ziffern zwischen 1 und 9.

Ebenso leicht gelingt die Konvertierung von Grafikformaten. Sämtliche bekannten Dateitypen wandelt a2ps mit Hilfe von ImageMagick um:

$ a2ps -1 ole.jpg -o ole.ps
[ole.jpg (jpeg, weitergeleitet an ImageMagick): 1 Seite auf einem Blatt]
[Insgesamt: 1 Seite auf einem Blatt] in die Datei `ole.ps' geschrieben

Welche Formate der Alleskönner versteht, verrät der Parameter --list=delegations (Abbildung 3).

Abb. 3: Ein wahrer Alleskönner -- "a2ps" kennt sich auch mit Bildformaten prima aus.

Bestandteil des ImageMagick-Pakets ist auch das Programm convert, dem sich das Guru-Training aus Ausgabe 06/2006 [8] gewidmet hat. Neben den dort gezeigten Kommandos zur Größenanpassung konvertiert das Tool auch verschiedene Dateiformate ineinander. So speichern Sie beispielsweise Bilder im PostScript-Format (convert bild.png bild.ps) oder betten sie in eine HTML-Datei ein (convert bild.jpg bild.html). Eine Liste aller unterstützten Dateiformate verrät die Manpage zu ImageMagick, die Sie über die URL man:/ImageMagick im Konqueror oder mit man ImageMagick auf der Konsole anzeigen.

Im Hintergrund hilft dem Konqueror übrigens ein weiterer Verwandlungskünstler bei der Anzeige von Manpages: Das Programm groff, das für die Erstellung und Formatierung von Manpages zuständig ist, kennt Parameter, der die Linux-Handbuchseiten ins Text-, PostScript- oder HTML-Format konvertiert. (hge)

Infos
[1] o3read: http://siag.nu/o3read/
[2] Artikel zu Ark: Andrea Müller, "Linux kann einpacken -- Archive erstellen und entpacken mit Ark", EasyLinux 08/2004, S. 44 ff., http://www.easylinux.de/2004/08/044-ark/
[3] Archivierung und Komprimierung auf der Shell: Heike Jurzik, "Komprimierungskünstler -- tar, zip & Co.", EasyLinux 07/2004, S. 84 ff., http://www.easylinux.de/2004/07/084-guru-tar/
[4] Artikel über Ein- und Ausgabeumleitung: Heike Jurzik, "Genial gelenkig -- Umleitungs-Operatoren", EasyLinux 09/2005, S. 84 ff., http://www.easylinux.de/2005/09/084-umleitungen/
[5] wvWare: http://wvware.sourceforge.net/
[6] Antiword: http://www.winfield.demon.nl/
[7] a2ps: http://www.infres.enst.fr/~demaille/a2ps/
[8] convert-Artikel: Heike Jurzik, "Zauberhafte Bildbearbeitung", EasyLinux 06/2006, S. 89 ff., http://easylinux.de/2006/06/089-guru-convert/ -- auf der Jahres-CD

Auf der Heft-CD:


Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.

Druckerfreundliche Version | Feedback zu dieser Seite | Datenschutz | © 2021 COMPUTEC MEDIA GmbH | Last modified: 2008-11-05 17:01

[Linux-Magazin] [LinuxUser] [Linux-Community]