Seite 1 von 1

ruby_odt_to_xhtml

Verfasst: Mittwoch 13. August 2008, 20:01
von genders
Hallo,

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

mfg

Verfasst: Mittwoch 13. August 2008, 20:41
von mitsuhiko
OpenOffice hat XSLTs um aus ODT XHTML zu machen.

Verfasst: Mittwoch 13. August 2008, 22:28
von genders
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

Verfasst: Mittwoch 13. August 2008, 23:39
von mitsuhiko
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.

Verfasst: Donnerstag 14. August 2008, 07:56
von sma
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

Verfasst: Donnerstag 14. August 2008, 08:19
von Hyperion
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 :-)

Verfasst: Donnerstag 14. August 2008, 08:46
von genders
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