2009-10-20 13 views
12

Co jakiś czas otrzymuję dokument Word, który muszę wyświetlić jako stronę internetową. Używam obecnie stron internetowych Django, aby to osiągnąć, chwytając zawartość HTML wygenerowaną przez MS Word. Wygenerowany html jest dość brudny. Czy istnieje lepszy sposób na wygenerowanie bardzo prostego html w celu rozwiązania tego problemu za pomocą Pythona?Jak przekonwertować dokument Word na bardzo prosty html w Pythonie?

Odpowiedz

6

Dobre rozwiązanie polega na przesyłaniu plików do Dokumentów Google i eksportowaniu z niego wersji html. (Musi być api do tego?)

Czyni tak wiele "porządków"; Beautiful Soup wzdłuż drogi można użyć do wprowadzenia dalszych zmian, odpowiednio. Jest to najpotężniejsza i najbardziej elegancka biblioteka parsowania html na świecie.

Jest to znany standard dla firm dziennikarskich.

+1

Ale jak dokładnie robisz to z Dokumentów Google? Przesyłam mój dokument MSWord i wybieram opcję konwersji - traci wszystkie diagramy – likejiujitsu

2

Zależy od formatowania i obrazów, z którymi masz do czynienia. Robię jeden z paru rzeczy:

  • Google Docs: Prawdopodobnie najbliżej dostaniesz się do oryginalnego formatowania i użytkowej HTML.
  • Markdown: Formatowanie porzucania. Wklej go do zwykłego edytora tekstu, przeprowadź przez Markdown i napraw resztę ręcznie.
+1

Jak uzyskać kod HTML z Dokumentu Google? Czy jest to opcja Pobierz jako HTML? –

+1

+1: Pliki Word Doc są * bardzo * trudne do pracy. Wiele narzędzi będzie je konwertować, w tym Open Office. Dokumenty Google mają prosty interfejs API, ponieważ jest to usługa internetowa HTTP. –

+3

MS Word -> HTML jest po prostu złem. Kazałem klientowi podać mi 95-stronicowy dokument zawierający setki "miejsc do zobaczenia" i powiedzieć: "Powinno być łatwo wprowadzić to do bazy danych". Arrggghh! Zrobiłem to i naliczyłem mu 100 $/godzinę za przywilej, ale myślę, że niedoładowałem z uwagi na ilość bólu. HTML był najgorszy, z jakim kiedykolwiek miałem do czynienia. –

2

Można również użyć Abiword/wvWare do konwertowania dokumentu programu Word do XHTML, a następnie analizować je z BeautifulSoup/ElementTree/etc. aby ją przetworzyć, jeśli potrzebujesz. Z mojego doświadczenia wynika, że ​​Abiword wykonuje całkiem dobrą robotę przy konwertowaniu plików Word i tworzeniu stosunkowo czystych plików XHTML.

Powinienem wspomnieć, że Abiword może być uruchamiany z linii poleceń, więc łatwo jest zintegrować go w zautomatyzowanym procesie.

3

Moja super-prosta aplikacja WordOff ma API do czyszczenia cruft z eksportowanego HTML. Możesz zastąpić metodę zapisu modelu swojej strony, aby przesłać HTML za pośrednictwem interfejsu API po pierwszym zapisaniu. Coś takiego:

import urllib 
import urllib2 

def decruft(html): 
    data = urllib.urlencode({'html' : html}) 
    req = urllib2.Request('http://wordoff.org/api/clean', data) 
    response = urllib2.urlopen(req) 
    return response.read() 

def save(self, **kwargs): 
    if not self.pk: # only de-cruft when content is first added 
     self.content = decruft(self.content) 
    super(FlatPage, self).save(**kwargs) 
+0

WordOff jest całkiem fajny w tego rodzaju sprawach. –

+2

Jeśli chcesz używać wordoff lokalnie, możesz pobrać moduł i użyć jego metody "superClean", aby uzyskać ten sam wynik: https://raw.github.com/tomdyson/wordoff/ master/wordoff.py –

+4

Hej Tomd, WordOff.org wygasło już choć – fedmich

2

Word 2010 ma możliwość "zapisywania jako przefiltrowanej strony internetowej". To wyeliminuje przytłaczającą większość kodu HTML wstawianego przez program Word.

4

znalazłem stronę internetową: http://www.textfixer.com/html/convert-word-to-html.php

To konwertuje sformatowany tekst prosty znaczników HTML, zachowując pogrubienie, kursywa, linki i akapity, ale nie dodawanie tagów dla font-rozmiary i twarze. Dokładnie to, czego potrzebowałem, aby zaoszczędzić trochę czasu.

+0

To jest niesamowite! Działa dokładnie tak, jakbym tego chciał. – Justin

Powiązane problemy