【发布时间】:2016-11-25 15:17:51
【问题描述】:
我有两个文档要部分合并。
我从文档 A 中取出 RTF 内容控件内的一些部分,并使用 AppendChild 和 CloneNode(true) 将内容控件的 sdtContent 的所有子元素复制到文档 B 中的另一个 sdtContent(深度克隆) :
foreach (var srcChildElement in sourceDocumentSdtContentBlockNode.ChildElements)
{
targetSdtContentBlock.AppendChild(srcChildElement.CloneNode(true);
}
问题是,如果我的源文档 A 中的内容(列表项)使用项目符号进行格式化,那么文档 B 中的结果将被编号为列表项。
当我克隆它时,为什么生成的样式与源中的样式不同?我认为它会保持它的风格,因为我不操纵它。在文档 B 中,似乎也没有格式问题。我可以毫无问题地手动插入项目符号或编号列表。
我什至创建了两个全新的 word 文档,但发生了同样的事情,所以现有文件肯定不是问题。
更新:
我发现文档 (https://msdn.microsoft.com/en-us/library/office/ee922775(v=office.14).aspx) 中有一个单独的编号定义,它不是我复制的节点的一部分。当我克隆节点时,此信息不包含在单独的编号定义中。有没有办法将节点复制到新文档并告诉它保留编号定义中的编号样式?另一种选择是手动检查克隆的节点是否包含 numPr 元素,如果是,则还提取定义(包括更改和重新分配 ID) - 更喜欢一种不太复杂的方法来复制元素并希望有一个:-)
有什么想法吗?
【问题讨论】: