Cabeçalho Desaparecendo Após SalvarComo no IronWord
SaveAs() como sua chamada de salvamento padrão sem nenhuma perda de cabeçalho relatada. Trate isso como uma possível peculiaridade específica do ambiente, e não como um defeito confirmado do produto, e verifique em seu próprio ambiente antes de aplicar a solução alternativa abaixo.Em alguns ambientes, ao preencher um modelo DOCX com o IronWord e gravar o resultado com SaveAs(), observou-se que o cabeçalho do modelo desaparece do arquivo gerado, embora os marcadores de posição se mesclem corretamente.
Header (e.g. "City Attorney Cover Sheet") is visible in the original DOCX
but missing in the generated file after calling SaveAs().

No ambiente onde isso foi observado, o cabeçalho foi preservado ao gravar o documento com Save() em vez de SaveAs(). Isso não foi corroborado em outros ambientes nem no changelog do IronWord — outros guias do IronWord usam SaveAs() como sua chamada de salvamento padrão sem problema de perda de cabeçalho, portanto trate isso como específico do ambiente, e não como um defeito confirmado do produto.
Solução
1. Carregue o Modelo
Abra o DOCX de origem com 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)
2. Substitua os Marcadores de Posição
Mescle seus valores através do doc.Texts, uma abordagem simples de localizar/substituir; para modelos com muitos marcadores de posição que usam a sintaxe MERGEFIELD, a API dedicada WordDocument.MailMerge do IronWord também está disponível.
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
Iterando cada entrada sobre doc.Texts troca cada token de marcador de posição por seu valor de mesclagem em todo o corpo do documento.
3. Salve com Save(), não SaveAs()
No ambiente onde esse problema foi observado, gravar a saída com doc.Save(outputPath) manteve o cabeçalho intacto, enquanto doc.SaveAs(outputPath) o descartou. Trate isso como uma solução alternativa para tentar, não como uma diferença de comportamento universal confirmada entre os dois métodos.
doc.Save(outputPath);
doc.Save(outputPath);
doc.Save(outputPath)

Notas
- Se seu fluxo de trabalho requer
SaveAs(): verifique na versão mais recente do IronWord se o cabeçalho sobrevive em seu ambiente. - Se o problema reaparecer: fixe em uma versão anteriormente funcional como uma mitigação de curto prazo enquanto o comportamento é investigado.

