ruby_odt_to_xhtml

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
genders
User
Beiträge: 31
Registriert: Samstag 23. Februar 2008, 12:26
Wohnort: Innsbruck / Tirol / Österreich

Hallo,

hat sich wer mit ruby_odt_to_xhtml im Zusammenhang mit Python beschäftigt? Kann Ruby nicht.

mfg
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

OpenOffice hat XSLTs um aus ODT XHTML zu machen.
TUFKAB – the user formerly known as blackbird
genders
User
Beiträge: 31
Registriert: Samstag 23. Februar 2008, 12:26
Wohnort: Innsbruck / Tirol / Österreich

Danke mitsuhiko,

nach meinem Wissenstand aber nicht mit Stylesheets und Feststellung des Unterschiedes von 'harter' und 'weicher' Formatierung. Nachdem es von Eisenberg ist, möchte ich die Vorgangsweise verstehen. Weiters geht es nicht nur um ODT sondern um ODF allgemein und es soll auch ohne OOo gehen.

mfg
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

genders hat geschrieben:nach meinem Wissenstand aber nicht mit Stylesheets und Feststellung des Unterschiedes von 'harter' und 'weicher' Formatierung.
Ich hab keine Ahnung was das heißen soll.
Nachdem es von Eisenberg ist, möchte ich die Vorgangsweise verstehen.
Eine mögliche Implementierung ist in den OOo XSLTs. Wenn du sie durchliest könntest du den Algorithmus verstehen :-)
Weiters geht es nicht nur um ODT sondern um ODF allgemein und es soll auch ohne OOo gehen.
Es gibt keinen allgemeinen ODT Konverter. ODF ist ein sehr, sehr komplexes Format das einen Rattenschwanz an W3 Specs dranhängen hat. Es ist soweit ich weiß noch nirgends vollständig implementiert und ich weiß auch nicht ob es das je wird. Die XSLTs die OOo für die Konvertierung zu XHTML anbietet gibt es zumindest für die Text und Tabellenversion von Open Document und die kann man auch ohne OpenOffice verwenden. lxml zB ist eine Python Library die XSLTs verarbeiten kann.
TUFKAB – the user formerly known as blackbird
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Bewaffnet mit der Übersicht aus der Wikipedia und der Spezifikation selbst musst du dich wohl der nicht gerade trivialen Aufgabe stellen, das XML selbst verarbeiten. XSLT kann man benutzen, aber auch das ist nicht einfach zu verstehen. Direkter, wenn auch letztlich umständlicher ist es daher vielleicht, das XML per Programm zu verarbeiten. Lies dazu mit einer XML-Bibliothek deiner Wahl (dem mitgelieferten xml.etree-Modul) das eigentliche Dokument ein, nachdem du es aus der ZIP-Datei extrahiert hast (zipfile-Modul). Lauf dann rekursiv über den DOM und schreibe dabei das passende XHTML in eine Datei oder ein anderes geeignetes Ausgabemedium.

Das erwähnte Ruby-ODT-Dingens geht ähnlich vor, nutzt aber wohl XPATH, um in dem ODT-Dokument nur bestimmte Dinge zu extrahieren und nicht alles. Da das nur etwa 30kb Quelltext ist, würde ich empfehlen, das einfach zu portieren - und dafür dann genug Ruby zu lernen.

Stefan
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Also wenn es um reine Übung geht, ok, aber ansonsten ist das verwenden von thrid party Sachen, wie die XSLTs doch ideal! XSL-Prozessor drüber feuern und man hat sein konvertiertes Dokument. Imho gehts kaum besser :-)
genders
User
Beiträge: 31
Registriert: Samstag 23. Februar 2008, 12:26
Wohnort: Innsbruck / Tirol / Österreich

Zu Antwort mitsuhiko: 'weiche' Formatierung in OOo ist die Verwendung von Formatvorlagen (ähnlich wie Stylesheets), 'harte' Formatierung ist direkte Formatierung von der Oberfläche her.

Zu Antwort sma: sich 'der nicht gerade trivialen Aufgabe stellen, das XML selbst verarbeiten' ist interessant und gibt aus meiner Sicht ein besseres Verständnis. Meine Lösung kann schon einiges, Eisenberg hat ein Buch darüber geschrieben, dehalb interessiert mich seine Umsetzung.

Das Schöne am programmieren ist, das man (meistens ungestraft) Fehler machen kann und aus diesen lernen kann bzw. sieht, was man noch nicht verstanden hat.

mfg
Antworten