Pregunta

Heredé un proyecto que almacena el formato HTML básico (es decir, < b >, <=> i <=> etiquetas) en una base de datos y lo escribe en un documento de Word. Esta es mi primera tarea de automatización de Word, ¡así que sé amable!

Actualmente, hay una función complicada que se ejecuta después de completar el documento que busca y reemplaza estas etiquetas. Sin embargo, como esto se ejecuta después de que se completa el documento, cualquier lógica que se determine en el tiempo de ejecución (es decir, inserte el salto de página aquí) puede conducir a resultados desastrosos. Por ejemplo, si tengo una gran porción de texto en negrita, este texto en negrita ocupa más espacio y empuja el salto de línea a la página siguiente, lo que resulta en una página en blanco.

Creo que la solución para esto es formatear el texto tal como viene de la base de datos para que la lógica de posicionamiento sea correcta. No quiero llamar al complicado procedimiento varias veces, ya que lleva mucho tiempo y nuestros usuarios finales necesitan este documento lo más rápido posible.

¿Existe una manera fácil de escribir texto con formato HTML en un documento de Word sin necesidad de buscar y reemplazar todas las etiquetas compatibles? Pensaría que habría algo dentro de Word que podría manejar esto automáticamente. Gracias de antemano si puede señalarme en la dirección correcta.

¿Fue útil?

Solución

Prueba esto:

Primero, guarde el HTML que está a punto de insertar como un " .htm " archivo.

Luego use el objeto Range y es Método InsertFile para insertar el " .htm " archivo en cualquier posición dada:

Dim r As Range

Set r = ActiveDocument.Range
r.InsertFile FileName:=TempFilePath, Link:=False, ConfirmConversions:=False

Word debe ser lo suficientemente inteligente como para manejar el HTML y hacer toda la conversión de formatos por sí mismo. Use CSS para controlar las partes más finas del formato.

Eliminar el " .htm " archivo cuando haya terminado.

Otros consejos

tal vez pueda invocar un IE incrustado (IWebBrowser2) para diseñar el texto, luego copiarlo al portapapeles como texto enriquecido y finalmente pegarlo en Word como texto enriquecido (formateado).

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