De vez en cuando recibo un documento de Word que tengo que mostrar como página web. Actualmente estoy usando las páginas planas de Django para lograr esto al tomar el contenido html generado por MS Word. El html generado es bastante desordenado. ¿Hay alguna manera mejor de generar un html muy simple para resolver este problema usando Python?¿Cómo se convierte un documento de Word en un html muy simple en Python?
Respuesta
Una buena solución consiste en cargar en Google Docs y exportar la versión html desde allí. (Debe haber una API para eso?)
Hace tantas "limpiezas"; Beautiful Soup en el camino puede usarse para hacer cualquier cambio adicional, según corresponda. Es la biblioteca de análisis html más poderosa y elegante del planeta.
Este es un estándar conocido para las empresas de periodismo.
Depende de cuánto formato e imágenes está tratando. Hago uno de un par de cosas:
- Google Docs: Probablemente el que más se aproxima al formato HTML original y útil.
- Margen: Abandonar el formateo. Pégalo en un editor de texto plano, ejecútalo a través de Markdown y arregla el resto a mano.
¿Cómo obtengo el HTML de Google Doc? ¿Es la opción Descargar como HTML? –
+1: los archivos de Word Doc son * muy * difíciles de trabajar. Muchas herramientas los convertirán, incluida Open Office. Google Docs tiene una API simple, ya que es un servicio web HTTP. –
MS Word -> HTML es simplemente malvado. Hice que un cliente me entregara un documento de Word de 95 (!) Páginas que contenía cientos de "lugares para ver" y decía: "Debería ser fácil ingresar esto en la base de datos". Arrggghh! Lo hice y le cobré $ 100 por hora por el privilegio, pero creo que no cobré suficiente debido a la cantidad de dolor. El HTML fue el peor con el que he tenido que trabajar. –
También puede utilizar Abiword/wvWare para convertir documento de Word a XHTML y luego analizarlo con BeautifulSoup/ElementTree/etc. para preprocesarlo si lo necesita. En mi experiencia, Abiword hace un buen trabajo al convertir archivos de Word y producir archivos XHTML relativamente limpios.
Debo mencionar que Abiword se puede ejecutar en la línea de comandos, por lo que es fácil integrarlo en un proceso automatizado.
Mi aplicación súper simple WordOff tiene API para limpiar restos de HTML exportado por Word. Puede anular el método de guardar de su modelo de páginas planas para canalizar su HTML a través de la API la primera vez que se guarda. Algo como esto:
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)
WordOff es bastante bueno en este tipo de cosas –
Si desea utilizar Wordoff localmente, puede descargar el módulo y usar su método "superClean" para obtener el mismo resultado: https://raw.github.com/tomdyson/wordoff/ master/wordoff.py –
Hey tomd, WordOff.org ya expiró a pesar de – fedmich
Word 2010 tiene la capacidad de "guardar como página web filtrada". Esto eliminará la abrumadora mayoría del HTML que Word inserta.
me encontré con esta página web: http://www.textfixer.com/html/convert-word-to-html.php
Convierte un texto con formato a sencilla marcado HTML, preservando negrita, cursiva, enlaces y párrafos, pero no la adición de etiquetas de tamaños de fuente y caras. Exactamente lo que necesitaba para ahorrar algo de tiempo.
¡Esto es increíble! Funciona exactamente como yo quisiera. – Justin
- 1. Convertir un documento de Word en HTML utilizable en PHP
- 2. ¿Cómo puedo crear un documento de Word utilizando Python?
- 3. ¿Cómo se convierte un documento hecho en Jsoup (el html analizador de Java) en una cadena
- 4. Extrayendo tablas de un documento DOCX Word en python
- 5. ¿Completa un documento de Word en asp.net?
- 6. generando javadoc como un documento de Word
- 7. ¿Cómo se puede editar un documento de Word con Java
- 8. Insertar HTML en documento de Word OpenXML (.Net)
- 9. ¿Cómo convierto un documento de Latex en Microsoft Word 2003?
- 10. Plantilla HTML simple en Python
- 11. Programación concurrente muy simple en Python
- 12. Insertar una imagen en un documento de Word en Java
- 13. python: serialice un diccionario en una simple salida html
- 14. ¿Cómo puedo ver/abrir un documento de Word en mi navegador usando PHP o HTML
- 15. Número de páginas en un documento de Word en java
- 16. ¿Cómo programáticamente inspeccionar un documento HTML
- 17. Reemplazar las balas con guiones en un documento de Word
- 18. margen inesperado con html muy simple
- 19. Renderizar un documento de Microsoft Word en una página web
- 20. Identificar encabezado en un documento de ms word usando C#
- 21. ¿Cómo inserto cadenas con formato HTML en un documento de Microsoft Word utilizando Visual Basic mientras se preserva el formato?
- 22. ¿Cómo se crea un documento XML en Python
- 23. Documento de Word en Sharepoint - VSTO
- 24. ¿Cómo enlazar a un javascript gzip en un documento html?
- 25. ¿Cómo desbloqueo un control de contenido utilizando OpenXML SDK en un documento de Word 2010?
- 26. Servidor muy simple en C
- 27. Cómo almacenar un documento de Word como un BLOB en mySQL con Coldfusion
- 28. ¿Cómo busco y reemplazo todas las ocurrencias de una cadena en un documento de ms word con python?
- 29. ¿Cómo insertar comentarios mediante programación en un documento de Microsoft Word?
- 30. Biblioteca para convertir texto del documento de Word a HTML
¿Pero cómo exactamente lo haces desde Google Docs? Subo mi documento MSWord y elijo la opción de conversión - pierde todos los diagramas – likejiujitsu