IronWord에서 저장 시 헤더 사라짐
SaveAs()를 표준 저장 호출로 사용하며 헤더 손실이 보고되지 않았습니다. 확인된 제품 결함이 아니라 환경별 특이 사항일 수 있는 것으로 간주하고, 아래 해결 방법을 적용하기 전에 사용자 환경에서 확인하세요.일부 환경에서는 IronWord로 DOCX 템플릿을 채우고 SaveAs()로 결과를 저장할 때, 자리 표시자가 올바르게 병합되더라도 생성된 파일에서 템플릿의 헤더가 사라지는 것이 관찰되었습니다.
Header (e.g. "City Attorney Cover Sheet") is visible in the original DOCX
but missing in the generated file after calling SaveAs().

이 문제가 관찰된 환경에서는 SaveAs() 대신 Save()로 문서를 작성했을 때 헤더가 유지되었습니다. 이는 다른 환경이나 IronWord의 변경 로그에서 확인되지 않았습니다 — 다른 IronWord 가이드는 SaveAs()를 표준 저장 호출로 사용해도 헤더 손실 문제가 없으므로, 확인된 제품 결함이 아니라 환경별 사항으로 간주하세요.
해결책
1. 템플릿 로드하기
WordDocument으로 소스 DOCX를 엽니다.
using IronWord;
using System.Collections.Generic;
var templatePath = @"C:\Templates\CityAttorneyCoverSheetTemplate.docx";
var outputPath = @"C:\Output\merged.docx";
var doc = new WordDocument(templatePath);
2. 자리 표시자 교체
템플릿 교체의 권장 접근 방식인 doc.Texts으로 값을 병합하세요.
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));
}
doc.Texts를 반복하여 텍스트 본문 전체에 있는 모든 자리 표시자 토큰을 병합 값으로 교체하세요.
3. SaveAs()가 아닌 Save()로 저장하기
이 문제가 관찰된 환경에서는 출력을 doc.Save(outputPath)로 작성하면 헤더가 그대로 유지되었고, doc.SaveAs(outputPath)는 이를 제거했습니다. 이를 시도해 볼 해결 방법으로 간주하고, 두 메서드 간의 확인된 보편적 동작 차이로 간주하지 마세요.
doc.Save(outputPath);

메모
작업 흐름에서 SaveAs()가 필요한 경우: 최신 IronWord 버전에서 헤더가 해당 환경에서 정상적으로 유지되는지 확인하세요.
문제가 다시 발생할 경우: 행동이 조사되는 동안 임시 완화책으로 이전에 작동하던 버전으로 고정하세요.

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.