Как создать файл .docx на основе другого файла .docx с помощью Open XML SDK?

Есть DOCX файл с формой. Нужно сделать его копию, но при этом произвести замену в тексте формы (Number заменить на номер, а DateS заменить на текущую дату).
Делаю так:
string fileSrc = Server.MapPath("/files/source_pko.docx");
string fileRes = Server.MapPath("/files/pko000.docx");
using (var docSrc = WordprocessingDocument.Open(fileSrc, false))
using (var docRes = WordprocessingDocument
	.Create(fileRes, WordprocessingDocumentType.Document))
{
	docRes.AddMainDocumentPart();
	var sb = new StringBuilder();
	using (var stream = new StreamReader(docSrc.MainDocumentPart.GetStream()))
		sb.Append(stream.ReadToEnd());
	var date = DateTime.Now;
	sb.Replace("Number", "123");
	sb.Replace("DateS", date.ToShortDateString());
	using (var stream = new StreamWriter(docRes.MainDocumentPart.GetStream(FileMode.Create)))
		stream.Write(sb);
}

При этом весь контент переезжает нормально, но слетают стили документа. Может я что-то делаю не так?
  • Вопрос задан
  • 709 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы