利用MS OpenXml Sdk 在机构结束时,我能够使用以下代码复制一个模板流,并附上动态案文(w.p>>>w.t):
var templateStream = File.OpenRead(templatePath);
templateStream.CopyTo(resultStream);
using (var resultPackage = WordprocessingDocument.Open(resultStream, true))
{
var document = resultPackage.MainDocumentPart.Document;
var body = document.Body;
// Add new text.
var para = body.AppendChild(new Paragraph());
var run = para.AppendChild(new Run());
run.AppendChild(new Text(firstName));
document.Save();
}
我的下一个合乎逻辑的步骤是,将结果Stream中文本框的内文改为下文守则中的第一行。
// replacing code in using statement from above
var document = resultPackage.MainDocumentPart.Document;
var textbox = document.Descendants<TextBox>().First();
const string firstNametag = "<<IH.FirstName>>";
if (textbox.InnerText.Contains(firstNametag))
{
var textboxContent = textbox.Elements<TextBoxContent>().First();
textboxContent.RemoveAllChildren();
var paragraph = textboxContent.AppendChild(new Paragraph());
var run = paragraph.AppendChild(new Run());
run.AppendChild(new Text(firstName));
}
document.Save();
在第一个例子中,加上一些补充代码,结果流被适当编成单体,第一Name在文中看到后被附在体尾。 在第二个例子中,尽管在变迁者中进行的进一步审查显示,文字箱中的儿童反映了上述变化,但文本箱及其内容仍然相同。
我是开放式反洗钱法发展的新鲜事,如果有任何明显的话,请指出这一点。