El Encabezado Desaparece Tras GuardarComo en IronWord
SaveAs() como su llamada de guardado estándar sin ninguna pérdida de encabezado reportada. Trata esto como una posible peculiaridad específica del entorno, y no como un defecto confirmado del producto, y verifícalo en tu propio entorno antes de aplicar la solución alternativa a continuación.En algunos entornos, al llenar una plantilla DOCX con IronWord y escribir el resultado con SaveAs(), se ha observado que el encabezado de la plantilla desaparece del archivo generado, aunque los marcadores de posición se combinen correctamente.
Header (e.g. "City Attorney Cover Sheet") is visible in the original DOCX
but missing in the generated file after calling SaveAs().

En el entorno donde se observó esto, el encabezado se conservó al escribir el documento con Save() en lugar de con SaveAs(). Esto no se ha corroborado en otros entornos ni en el changelog de IronWord: otras guías de IronWord usan SaveAs() como su llamada de guardado estándar sin problemas de pérdida de encabezado, por lo que trata esto como algo específico del entorno y no como un defecto confirmado del producto.
Solución
1. Cargue la Plantilla
Abre el DOCX fuente con WordDocument.
using IronWord;
using System.Collections.Generic;
var templatePath = @"C:\Templates\CityAttorneyCoverSheetTemplate.docx";
var outputPath = @"C:\Output\merged.docx";
var doc = new WordDocument(templatePath);
2. Reemplace los Marcadores de Posición
Combina tus valores a través de doc.Texts, que es el enfoque recomendado para el reemplazo de plantillas.
var replacements = new Dictionary<string, string>
{
["{CaseNumber}"] = "2026-CR-12345",
["{DefendantName}"] = "John Doe",
["{DefendantAge}"] = "34",
["{DefendantAttorney}"] = "Jane Smith",
};
foreach (var kv in replacements)
{
doc.Texts.ForEach(t => t.Replace(kv.Key, kv.Value));
}
Iterar cada entrada sobre doc.Texts intercambia cada marcador de posición por su valor de combinación en todo el cuerpo del documento.
3. Guarda con Save(), no con SaveAs()
En el entorno donde se observó este problema, escribir la salida con doc.Save(outputPath) mantuvo el encabezado intacto, mientras que doc.SaveAs(outputPath) lo eliminó. Trata esto como una solución alternativa para probar, no como una diferencia de comportamiento universal confirmada entre los dos métodos.
doc.Save(outputPath);

Notas
- Si tu flujo de trabajo requiere
SaveAs(): verifica en la última versión de IronWord si el encabezado sobrevive en tu entorno. - Si el problema reaparece: ancle a una versión previamente funcional como mitigación a corto plazo mientras se investiga el comportamiento.

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien estructurados y visualmente atractivos.