2013-01-24 8 views
7

Menschen, die Inhalte zu meiner Website senden, verwenden Sie Word, so bekomme ich eine Menge von Word-Dokumenten in HTML konvertieren. Ich möchte nur die grundlegende Formatierung beibehalten - Überschriften, Listen und Hervorhebungen - keine Bilder.Von MS Word oder Libre Office zu reinigen HTML

Wenn ich sie mit Libre Office "Save as HTML" umwandele, sind die resultierenden Dateien riesig, zum Beispiel eine Doc-Datei von 112K wird 450K HTML, die meisten davon nutzlos FONT und SPAN Tags (aus irgendeinem Grund, jeder einzelne Interpunktionszeichen ist in seiner eigenen Spannweite eingeschlossen!).

Ich versuchte dieses Skript: http://www.techrepublic.com/blog/opensource/how-to-convert-doc-and-odf-files-to-clean-and-lean-html/3708 basierend auf sauber und sed, und es reduziert die Größe auf etwa 150K, aber es gibt immer noch viele nutzlose SPANs.

Ich habe versucht zu kopieren und in Kompozer - ein HTML-Editor und dann speichern Sie als HTML; aber es konvertierte alle meine nicht-lateinischen (hebräischen) Buchstaben in Entitäten wie "ְ", was die Größe auf 750K erhöhte!

Ich versuchte docvert: https://github.com/holloway/docvert/issues/6 aber herausgefunden, dass es eine Python-Bibliothek erfordert, dass eine andere Bibliotheken erfordert, etc., die wie eine endlose Strecke von Abhängigkeiten scheint ...

Gibt es eine einfache Art und Weise sauber HTML zu erstellen aus Office-Dokumenten?

+0

Dies ist wahrscheinlich ein Duplikat: http://stackoverflow.com/questions/67964/what-is-the-best-free-way-to-clean-up-word-html/1813798#1813798 –

Antwort

0

In Ihrer Situation müssen Sie möglicherweise Zeile für Zeile die wichtigsten Teile Ihres Word-Dokuments konvertieren, dann gehen Sie zurück und bereinigen Sie alle zusätzlichen Tags. Wenn Sie diesen Ansatz nicht kümmern, dann erwägen, diese Lösung ...

  1. nach dem Wort doc als Webseite zu speichern, öffnen Sie die Web-Seite in Notepad ++.
  2. Dann wird die Funktion für das
  3. das finden Dokument ersetzen verwenden innerhalb dessen, was Feld, geben Sie in < [^>] +>
  4. Im Suchmodus für das gleiche Fenster, wählen Sie „Regulärer Ausdruck“

Jetzt müssen Sie nur noch von diesem Punkt aus auf "Weitersuchen" klicken, bis Sie zu den Tags gelangen, die Sie ersetzen möchten, und dann für jedes Tag, das ersetzt werden muss, auf Ersetzen klicken. Stellen Sie sicher, dass das Feld "Ersetzen durch:" leer ist.

Ich weiß nicht, ob es einen bequemeren Weg gibt, aber dieser Weg ist 100% kostenlos und einfach für HTML-Tag-Bereinigung Verarbeitung über Notepad ++.

Was Umwandlung Inline-Stile zu externen CSS (die ich als zweiter Prozess empfehlen nach unnötigen Tags zu ersetzen), versuchen Sie diese app ... http://inlinecssextractor.com/home.html

Viel Glück

+0

Mit Notepad ++ könnte eine Lösung für ein einzelnes Dokument sein, da ich aber jede Woche neue Dokumente habe, möchte ich nicht immer wieder dieselben Ersetzungen für jedes Dokument wiederholen ... –

0

Ich fand diese zwei Reiniger ziemlich effektiv. Zuerst lief ich das Wort gefiltert html durch

http://textism.com/wordcleaner/

Dann habe ich einige reguläre Ausdrücke verwendet, um einige Absatz mit Aufzählungszeichen Listen Elemente (li) zu konvertieren. Dann lief ich das Ergebnis durch

http://infohound.net/tidy/

die Listenelemente mit ungeordneter Liste (ul) -Etiketten und aufzuräumen andere Fehler zu wickeln. Ich war sehr zufrieden mit dem Ergebnis von 1,5 Mio. auf 225.000.

0

Ich benutzte http://word2cleanhtml.com/, bis ich erkannte, dass MS Word selbst die Option gibt, Dokument als HTML zu speichern.

Wenn Sie dies auswählen, wird die .docx-Datei zu .html und ist die beste HTML-Version eines Word-Dokuments, das ich gesehen habe. Es ist sicherlich besser als all diese Online-Tools.

1

Ich weiß, dass diese Frage alt ist, aber die anderen Antworten beantworteten die Frage nie wirklich. Wenn Sie einige PHP-Code zu schreiben nicht abgeneigt sind, hat das CubicleSoft ultimative Web Scraper Toolkit eine Klasse namens TagFilter:

https://github.com/cubiclesoft/ultimate-web-scraper/blob/master/support/tag_filter.php

Sie passieren in zwei Dinge: Eine Reihe von Optionen und die Daten als HTML zu analysieren.

Zum Aufräumen von HTML-Code werden die Standardoptionen von TagFilter :: GetHTMLOptions() als guter Startpunkt dienen. Diese Optionen bilden die Grundlage für gültigen HTML-Inhalt. Wenn Sie nichts anderes tun, bereinigen Sie alle Eingabedaten in etwas, das ein anderes Tool wie Simple HTML DOM in einem DOM-Modell korrekt analysieren kann.

Die andere Möglichkeit, die Klasse zu verwenden, besteht jedoch darin, die Standardoptionen zu ändern und dem Optionsarray eine Callback-Option hinzuzufügen. Für jedes Tag im HTML wird die angegebene Callback-Funktion aufgerufen. Es wird erwartet, dass der Callback zurückgibt, was mit jedem Tag zu tun ist. Hier kommt die wahre Stärke von TagFilter ins Spiel. Sie können ein beliebiges Tag und einige oder alle seiner Attribute behalten (oder ändern), das Tag loswerden, aber den internen Inhalt behalten, das Tag behalten, aber den Inhalt loswerden, den Inhalt ändern (zum Schließen von Tags), oder Entfernen Sie sowohl den Tag als auch den inneren Inhalt. Dieser Ansatz ermöglicht eine extrem verfeinerte Kontrolle über den komplexesten HTML-Code und verarbeitet die Eingabe in einem einzigen Durchgang. Sehen Sie sich die Test-Suite des gleichen Repositorys an, zum Beispiel die Verwendung von TagFilter.

Der einzige Nachteil ist, dass der Callback zwischen jedem Aufruf verfolgen muss, wo er sich gerade befindet, während etwas wie Simple HTML DOM Dinge basierend auf einem DOM-ähnlichen Modell auswählt. Aber das ist nur ein Nachteil, wenn das zu verarbeitende Dokument Dinge wie "id's" und "classes" hat ... die meisten Word/Libre-HTML-Inhalte nicht, was bedeutet, dass es ein riesiger Blob von nicht erkennbaren/nicht analysierbaren HTML-Dateien ist gehen.

0

Hier ist eine Reihe von PowerShell-Skripten, die Word-Filtered HTML säubern und Super-/Indices ungefähr 95% der Zeit korrekt markieren. (Nein, können Sie nicht besser als das, Word für Druck gemacht wird.)

https://github.com/suzumakes/replaceit

Anleitung gibt es in der ReadMe und wenn Sie zufällig irgendwelche zusätzlichen Zeichen zu begegnen, die gefangen werden müssen oder kommen mit irgendwelchen Optimierungen/Verbesserungen, würde ich mich freuen, Ihre Pull-Anfrage zu sehen.

0

ophir.php macht einen ziemlich guten Job bei der Erstellung von sauberem HTML aus .odt-Dateien. Sie benötigen eine PHP-Hosting-Umgebung, um es auszuführen.

Verwandte Themen