Есть 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);
}
При этом весь контент переезжает нормально, но слетают стили документа. Может я что-то делаю не так?