Pregunta

Puaj.Word es conocido por su HTML inflado, complicado, no compatible con los estándares y no semántico.Desafortunadamente, tengo un profesor que nos exige que generemos un esquema con estándares muy exigentes.Preferiría no escribirlo a mano, así que decidí hacer algo que también fuera útil para mis compañeros de clase.Creé el esquema usando una lista numerada simple en NeoOffice en mi Mac, lo exporté como HTML y escribí bastante CSS para darle estilo.Luego, le pedí a alguien que creara una lista ordenada en Word para Windows, la exportara como html y me la enviara para verificar la compatibilidad.Después de desplazarme kilómetros por la página, tratando de reprimir un escalofrío, vi un problema.La palabra no usó <ol> y <li>.Usó montañas de anidados <span>s con clases fuera del wazoo.Odio ver que todo mi trabajo se desperdicia, pero es imposible trabajar con este contenido; tendría que diseñar documento a documento, en lugar de usar una hoja de estilo universal.

Lo ideal sería que Word generara HTML usando etiquetas estándar para poder diseñarlo como cualquier otra lista, pero este no parece ser el caso.¿Cómo puedo hacer que genere listas que realmente usen? <ul> y <li> en vez de <span>, ¿o al menos modificar algo en mi código para que funcione de alguna manera con la forma extraña en que crea listas?

¿Fue útil?

Solución 8

Al investigar un poco, parece que el método de convertir el documento a HTML no es práctico.Word es simplemente demasiado variable en su enfoque para guardar archivos y generar HTML para un solo documento, sin mencionar las diferencias entre las diferentes versiones de Word.De manera similar a la sugerencia de Wyatt, puede haber formas de limpiar el código, pero ninguna de ellas es perfecta.Explorar la API puede proporcionar una manera de analizar esto más fácilmente, pero puede resultar que en la práctica esto sea igual de complicado.Parece que usar Word como herramienta de generación de listas simplemente no es realista.

Otros consejos

Los chicos que escribieron Winword y su generación HTML son chicos inteligentes.Si fuera fácil utilizar las funciones HTML de forma purista, lo habrían hecho.

Word se trata de crear diseños optimizados para papel.admite conceptos como tabulaciones y numeración de niveles múltiples que HTML no admite, o apenas está comenzando a hacerlo.Como resultado, la versión HTML de un documento de Word no es un HTML "agradable", sino un intento de conservar las características del documento de Word con precisión.

Cuando Word vuelve a abrir un archivo HTML que ha guardado, realiza una ingeniería inversa inteligente en el documento, de modo que Word se muestra prácticamente como cuando comenzó.Del mismo modo, si inserta el HTML como un fragmento en una página web, conservando el CSS de Word, los resultados son bastante fieles.En este caso hay un choque cultural entre el CSS subyacente de la página web y el CSS de Word, y se requiere algo de esfuerzo para sacar lo mejor de un mal trabajo.El HTML de Word tampoco usa UTF-8, lo que necesita algo de manejo.

HTMLTidy se puede utilizar para eliminar el marcado de Word, pero después de esto se requiere un poco más de masaje para lograr una buena representación dentro de una página web.He trabajado en un producto durante 15 años que combina Word y páginas web, y los resultados pueden ser bastante buenos si ajustas el CSS.

Usamos Word porque estábamos creando versiones en papel e importando texto de informes escritos en Word, no porque no pudiéramos encontrar un editor HTML dedicado.

No recomendaría usar Word para crear HTML purista y ordenado.No usarías un abrelatas para abrir una botella de vino, ¿verdad?

La vida sería mucho más sencilla si:A) Microsoft rediseñó las innumerables opciones en su altamente confusa característica de 'balas y números', b) HTML proporcionó un soporte nativo y de numeración de niveles múltiples, en lugar de los enfoques posteriores al pensamiento actualmente disponibles.La debilidad del HTML en esta área se puede ver en las endebles opciones de numeración disponibles en Google Docs.

Mucho ha mejorado con HTML 5, tal vez podamos esperar que HTML 6 ayude a cerrar la brecha entre procesador de textos y editor HTML.

Utilice este recurso http://word2cleanhtml.com/ para convertir documentos de Word a HTML limpio.Muy útil, en mi opinión.

Si puede conseguir una PC con Windows, use Notepad++ (http://notepad-plus-plus.org/) para pegar el código y luego seleccione el complemento para formatear el código.

Utilice un editor WYSIWYG como generador de listas.Esto eliminaría la necesidad de que los usuarios trabajen con CSS sin formato, a costa de sacarlos de la zona de confort de Microsoft Word.

El uso creativo de Buscar y reemplazar de Word también podría funcionar.Por ejemplo, abra el archivo HTML con el Bloc de notas, copie y pegue el texto nuevamente en un documento de Word.Abra Buscar y reemplazar.Si el HTML tiene este aspecto (por ejemplo), siendo "Esta es la primera línea de texto" la primera línea:

<p class=MsoListParagraphCxSpFirst style='text-indent:-.25in;mso-list:l0 level1 lfo1'><![if !supportLists]><span...(Cut due to berevity)...
-height:115%'>This is the first line of text<o:p></o:p></span></p>

Luego busque y reemplace con comodines activados para \<p*line-height:115%'\ y reemplazar con nada.Es posible que sean necesarias una serie de búsquedas/reemplazos.El marcado HTML es abundante, pero todo lo demás es igual, al menos es consistente.

Si tienes Dreamweaver a mano, hay un botón mágico para "limpiar HTML de palabras" que hace maravillas en este escenario.

MSWord es tan inteligente como el autor: una lista ordenada se convierte como tal en HTML sólo si se creó en MSWord como tal.Esto significa que una lista debe tener el formato correspondiente según las construcciones de MSWord y no según cómo se muestra en la página.Mucha gente creará listas que "parecen" estar ordenadas o desordenadas mediante tabulaciones y otros formatos y sin utilizar las funciones de lista de MSWord.Guardar en HTML intenta guardarlo tal como fue escrito, no como se mostró.

Puede vincular una hoja de estilo externa a un documento HTML en Trabajo en la pestaña Desarrollador -> Plantilla de documento -> CSS vinculado.Luego puedes usar esto para anular casi cualquier estilo generado por Word.

Crédito: https://superuser.com/questions/65107/how-to-apply-external-css-stylesheet-to-document-in-microsoft-word/65144#65144

Nota:Hice esto usando Word 2013, pero no es una característica nueva.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top