Время от времени я получаю документ Word, который должен отображаться как веб-страница. В настоящее время я использую flatpages Django, чтобы достичь этого, захватив html-контент, созданный MS Word. Сгенерированный html довольно грязный. Есть ли лучший способ, который может генерировать очень простой html для решения этой проблемы с помощью Python?
Как вы конвертируете Word Document в очень простой html в Python?
Ответ 1
Хорошее решение включает загрузку в Документы Google и экспорт из него html-версии. (Для этого должен быть api?)
Он делает так много "очищений"; Красивый суп по дороге можно использовать, чтобы внести любые дальнейшие изменения, в зависимости от ситуации. Это самая мощная и элегантная библиотека синтаксического анализа html на планете.
Это известный стандарт для журналистских компаний.
Ответ 2
Я нашел эту веб-страницу: http://www.textfixer.com/html/convert-word-to-html.php
Он преобразует форматированный текст в простую разметку HTML, сохраняя полужирный, курсив, ссылки и абзацы, но не добавляя теги для размеров шрифтов и лиц. Именно то, что мне нужно, чтобы сэкономить некоторое время.
Ответ 3
Мое супер-простое приложение WordOff имеет API для очистки крутизны от HTML-кода, экспортированного в Word. Вы можете переопределить метод сохранения вашей модели flatpages, чтобы перенести свой HTML через API в первый раз, когда он будет сохранен. Что-то вроде этого:
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)
Ответ 4
Это зависит от формата форматирования и изображений, с которыми вы имеете дело. Я делаю одно из двух вещей:
- Документы Google. Вероятно, ближе всего к исходному форматированию и используемому HTML.
- Markdown: форматирование Abandon. Вставьте его в текстовый редактор, запустите его через Markdown и закрепите остальные вручную.
Ответ 5
Вы также можете использовать Abiword/wvWare преобразовать документ Word в XHTML, а затем проанализировать его с помощью BeautifulSoup/ElementTree/и т.д.. для предварительной обработки, если вам нужно. По моему опыту, Abiword делает довольно хорошую работу по преобразованию файлов Word и созданию относительно чистых файлов XHTML.
Я должен упомянуть, что Abiword можно запустить в командной строке, поэтому легко интегрировать его в автоматизированный процесс.
Ответ 6
Word 2010 имеет возможность "сохранять как отфильтрованную веб-страницу". Это исключит подавляющее большинство HTML, которые Word вставляет.