Nagłówek znika po zapisie jako w IronWord
SaveAs() jako standardowego wywołania zapisu bez zgłoszonej utraty nagłówka. Potraktuj to jako możliwą osobliwość specyficzną dla środowiska, a nie potwierdzoną wadę produktu, i zweryfikuj we własnym środowisku przed zastosowaniem poniższego obejścia.W niektórych środowiskach zaobserwowano, że podczas wypełniania szablonu DOCX za pomocą IronWord i zapisywania wyniku z SaveAs() nagłówek szablonu znika z wygenerowanego pliku, mimo że kontenery są łączone poprawnie.
Header (e.g. "City Attorney Cover Sheet") is visible in the original DOCX
but missing in the generated file after calling SaveAs().

W środowisku, w którym to zaobserwowano, nagłówek został zachowany podczas zapisywania dokumentu z Save() zamiast SaveAs(). Nie zostało to potwierdzone w innych środowiskach ani w dzienniku zmian IronWord — inne przewodniki IronWord używają SaveAs() jako standardowego wywołania zapisu bez problemu utraty nagłówka, więc potraktuj to jako specyficzne dla środowiska, a nie jako potwierdzoną wadę produktu.
Rozwiązanie
1. Załaduj szablon
Otworz zrodlowy plik DOCX za pomoca 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. Zastąp zastępniki
Polacz swoje wartosci przez doc.Texts, co jest zalecanym podejsciem do zamiany kontenerow.
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));
}
Iterowanie przez kazdy wpis za pomoca doc.Texts zamienia kazdy kontener na jego wartosc laczenia w calosci dokumentu.
3. Zapisz z Save(), a nie SaveAs()
W środowisku, w którym zaobserwowano ten problem, zapisanie wyniku z doc.Save(outputPath) zachowało nagłówek nienaruszony, podczas gdy doc.SaveAs(outputPath) go usunął. Potraktuj to jako obejście do wypróbowania, a nie potwierdzoną uniwersalną różnicę w zachowaniu między tymi dwiema metodami.
doc.Save(outputPath);

Notatki
- Jesli twoj proces wymaga
SaveAs(): sprawdz w najnowszej wersji IronWord, czy naglowek przetrwa w twoim srodowisku. - Jeśli problem powróci: przypnij do wcześniej działającej wersji jako krótkoterminowe rozwiązanie, podczas gdy działanie jest badane.

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.