El Encabezado Desaparece Tras GuardarComo en IronWord

This article was translated from English: Does it need improvement?
Translated
View the article in English

Por favor notaEste comportamiento solo se ha reportado en un entorno y no está corroborado por el changelog de IronWord: otras guías de IronWord usan 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().

Plantilla de Word con marcadores de posición no reemplazados y sin encabezado

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);
using IronWord;
using System.Collections.Generic;

var templatePath = @"C:\Templates\CityAttorneyCoverSheetTemplate.docx";
var outputPath   = @"C:\Output\merged.docx";

var doc = new WordDocument(templatePath);
Imports IronWord
Imports System.Collections.Generic

Dim templatePath As String = "C:\Templates\CityAttorneyCoverSheetTemplate.docx"
Dim outputPath As String = "C:\Output\merged.docx"

Dim doc As New WordDocument(templatePath)
$vbLabelText   $csharpLabel

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));
}
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));
}
Imports System.Collections.Generic

Dim replacements As New Dictionary(Of String, String) From {
    {"{CaseNumber}", "2026-CR-12345"},
    {"{DefendantName}", "John Doe"},
    {"{DefendantAge}", "34"},
    {"{DefendantAttorney}", "Jane Smith"}
}

For Each kv In replacements
    doc.Texts.ForEach(Sub(t) t.Replace(kv.Key, kv.Value))
Next
$vbLabelText   $csharpLabel

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);
doc.Save(outputPath);
doc.Save(outputPath)
$vbLabelText   $csharpLabel

Documento de Word combinado con el encabezado preservado y los marcadores de posición llenos

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.

Por favor notaLos marcadores de posición todavía se encuentran y reemplazan durante el recorrido incluso cuando el encabezado se pierde, por lo que una fusión exitosa por sí sola no confirma que el encabezado se haya conservado. Abra la salida y verifique.

Curtis Chau
Escritor Técnico

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 ...

Leer más
¿Listo para empezar?
Nuget Descargas 48,355 | Versión: 2026.7 recién lanzado
Still Scrolling Icon

¿Aún desplazándote?

¿Quieres una prueba rápida? PM > Install-Package IronWord
ejecuta una muestra observa cómo tus datos se convierten en un documento de Word.