Estoy tratando de usar una lectura de docx a través del SDK OpenXML como plantilla en una aplicación web .Net para cartas de formulario (esencialmente). Tengo un docx con el formato que quiero, marcado con las etiquetas XML Schema definidas de un xsd (como se llamen, la ayuda es extremadamente inútil en esto).Plantillas de WordML con esquema XML y SDK de OpenXML
Lo único similar que encontré en Google fue lo que parecía estar reemplazando los elementos CustomXmlBlock con elementos de texto con los datos deseados. Esto parece ... desordenado y frágil.
También tengo la complicación adicional de que algunos de los datos son jerárquicos, con elementos para secciones y luego elementos en esa sección. Esto parece romper completamente el método anterior.
Entonces, ¿alguien puede indicarme la dirección correcta para hacer esto, o sugerir una mejor manera de manejar las plantillas de letras?
Guau, eso es excelente, ni siquiera sabía que existían los controles de contenido. Voy a aceptar esto y otorgaré la recompensa, aunque tengo una pregunta, más bien como una confirmación.Parece que no hay soporte integrado para ningún tipo de estructura repetitiva (tablas, listas, etc.) con controles de contenido. Supongo que puse un Rich Text Content Control en el documento como marcador de posición, luego genero la tabla o lista usando OpenXML sdk y lo configuro como el contenido del control de contenido. –
@Matt S: He incluido algunos enlaces adicionales que también deberían ayudarlo a comenzar. Hay varias formas de hacer repetidores con Controles de Contenido: uno es lo que mencionaste. La otra forma es usar Building Blocks. Otra forma es hacer lo contrario de lo que mencionaste: coloca una tabla con solo una fila de encabezado y luego crea filas pobladas con CC en las celdas. Mire también el Word Content Control Kit, que le ahorrará la vida al trabajar con CC hasta que se familiarice mucho más. –
@Matt S, eso es esencialmente correcto. Necesita una forma de decir qué control de contenido es un marcador de posición repetido. http://dev.plutext.org/svn/docx4j/trunk/docx4j/sample-docs/databinding/conventions.html sugiere una forma de hacerlo. – JasonPlutext