Worddokument in sauberes HTML
berlinsurfer
- programmiertechnik
1 ChrisB0 berlinsurfer0 Felix Riesterer1 suit0 Felix Riesterer0 suit
0 jobo
Hallo,
im Zuge eines eBooks und anschließender Umwandlung in das ePub-Format möchte ich aus Word eine saubere HTML-Datei erstellen. Leider ist da ziemlich viel Schrott drin (warum eigentlich ?), mein Ansatz war nun mittels php unnötige Tags rauszufiltern, nämlich so:
class convertWord {
private function cleanHTML($html) {
$html = preg_replace("#<(/)?(font|span|del|ins)[^>]*>#","",$html);
$html = preg_replace("#<([^>]*)(class|lang|style|size|face)=(\"[^\"]*\"|'[^']*'|[^>]+)([^>]*)>#","<\\1>",$html);
$html = preg_replace("#<([^>]*)(class|lang|style|size|face)=(\"[^\"]*\"|'[^']*'|[^>]+)([^>]*)>#","<\\1>",$html);
return $html;
}
}
Leider steht danach immer noch ziemlich viel Unsinn in der HTML-Datei, kennt jemand eine Lösung mit einem möglichst schlanken Ergebnis ? Vorzugsweise in PHP ? Danke schon mal.
Hi,
im Zuge eines eBooks und anschließender Umwandlung in das ePub-Format möchte ich aus Word eine saubere HTML-Datei erstellen. Leider ist da ziemlich viel Schrott drin (warum eigentlich ?)
Weil MicroSoft diesen Schrott für nützlich hielt, wenn es darum gehen sollte, dieses „HTML“ anschließend auf umgekehrtem Wege wieder in Office-Produkte zu importieren, und dabei kleine Zusatzinfos zu übermitteln.
mein Ansatz war nun mittels php unnötige Tags rauszufiltern
Stellst du dich bitte in die Ecke und geisselst dich selber – oder müssen wir letzteres übernehmen?
HTML-Code plus Verarbeitung mittels regulärer Ausdrücke gleich ganz dickes Pfui.
Bitte hinter die Ohren schreiben (oder an eine andere Stelle, die selten gewaschen wird).
Leider steht danach immer noch ziemlich viel Unsinn in der HTML-Datei, kennt jemand eine Lösung mit einem möglichst schlanken Ergebnis ? Vorzugsweise in PHP ?
MfG ChrisB
Hi,
Stellst du dich bitte in die Ecke und geisselst dich selber – oder müssen wir letzteres übernehmen?
mach ich ;-)
Super. Danke.
Lieber ChrisB,
bei beiden Bibliotheken konnte ich nicht eruieren, ob sie in der Lage sind, diese Fake-Listen, die Word leider produziert (sowas wie <p>- ...</p>
), in korrekt( verschaltelt)e Listen zurückzuwandeln. Hast Du damit Erfahrung?
Liebe Grüße,
Felix Riesterer.
bei beiden Bibliotheken konnte ich nicht eruieren, ob sie in der Lage sind, diese Fake-Listen, die Word leider produziert (sowas wie
<p>- ...</p>
), in korrekt( verschaltelt)e Listen zurückzuwandeln. Hast Du damit Erfahrung?
Mit Fake-Listen meinst du doch nicht etwa die Konstrukte, die dabei entstehen wenn jemand mit "-" und TAB eine Liste erstellt und das dafür vorgesehene Knöpfchen für UL ignoriert.
Dann ist dem Autor nicht zu helfen - das ist kein Fehler von Office/Word.
Lieber suit,
Mit Fake-Listen meinst du doch nicht etwa die Konstrukte, die dabei entstehen wenn jemand mit "-" und TAB eine Liste erstellt und das dafür vorgesehene Knöpfchen für UL ignoriert.
doch, genau die meine ich, allerdings nicht durch den Autor verbrochen, sondern durch Word selbst. Word generiert dazu XML-Kommentare mit sowas wie <!--[if !supportLists]-->
oder <p class="MsoListParagraph">
. Schau doch mal in die RegExe des Paste-Plugins des TinyMCE. Dort findest Du sehr viele schöne Sachen, insbesondere das Wiederherstellen von Listen. Leider macht Moxiecode das mit DOM-Funktionen, die ich mit meinen Kenntnissen in PHP nicht nachbilden kann... hätte ich aber gerne.
Liebe Grüße,
Felix Riesterer.
doch, genau die meine ich, allerdings nicht durch den Autor verbrochen, sondern durch Word selbst. Word generiert dazu XML-Kommentare mit sowas wie
<!--[if !supportLists]-->
oder<p class="MsoListParagraph">
. Schau doch mal in die RegExe des Paste-Plugins des TinyMCE. Dort findest Du sehr viele schöne Sachen, insbesondere das Wiederherstellen von Listen. Leider macht Moxiecode das mit DOM-Funktionen, die ich mit meinen Kenntnissen in PHP nicht nachbilden kann... hätte ich aber gerne.
Das müssen dann Leichen aus alten Word-Versionen sein - die neuen Office-Versionen produzieren eigentlich "ganz ordentliches" HTML.
DOM-Funktionen (Klassen) hat auch PHP genug, das sollte nicht so tragisch sein, das ganze nachzubauen.
Hallo,
mit open office auch schwierig?
Gruß
jobo