2010-03-17 87 views
5

我正尝试使用OpenXML SDK 2.0将两个docx文档合并到一个docx文档中。这些文档应该合并,而不会丢失它们的样式和自定义页眉和页脚。我希望我可以使用AltChunk和分节符来实现这一点。但我无法得到它的工作。合并文档

我想要做什么?有人可以给我一个提示如何实现这一点?

回答

1

使用'Open XML Productivity Tool'我分析了docx文档的结构,并得出结论:使用Altchunk开箱即可合并文档及其样式,页眉,页脚等。您可以从open xml sdk分开下载该工具。

我现在正在做什么,什么是工作,将所有手动拷贝到文档,确保所有样式引用,页眉引用,页脚引用......都被保留。这意味着在我将它们复制到文档中并将所有引用从旧ID更改为新ID之前,我给它们一个新的唯一ID。有很多代码可以做到这一点,但上面提到的工具确实有帮助。

添加分节符也很困难。您应该知道SectionProperties -tag描述了该部分的所有属性,并且在Body -tag下可以有一个SectionProperties -tag,用于描述上一部分的属性。因此,添加新的分节符,意味着将最后一个SectionProperties标签复制到该分节的最后一个段落,并在Body标签下添加新的SectionProperties标签。我还从生产力工具中获得了大量信息。

+0

你可以发布代码:-)一些容易理解的例子:> – MadBoy 2010-10-07 21:40:45

+0

Jelle的经验反映了我的。这不是一件容易的事,它需要比你想象的更多的代码。由于必须防止Id名称的冲突,因此保持样式的直观性非常困难。 – 2010-10-18 12:35:03

4

上述答案根本不正确!这完全是AltChunk设计的目的,而且效果很好!

注:(显然文件必须保存或磁盘上的文件将不会被更新),这个Word中打开首次在文件中的文件将不会被合并成一个文件

见这个博客有关如何正确地做到这一点的更多信息: https://blogs.msdn.com/b/ericwhite/archive/2008/10/27/how-to-use-altchunk-for-document-assembly.aspx?Redirected=true

ps至于使用生产力工具检查Open XML,我的意见是只安装官方的Visual Studio Open XML插件,并从Visual Studio打开Office文档来检查它们,这非常方便! :-)

+1

也适用于我,尽管与Word LibreOffice似乎忽略了altChunk。 – metalheart 2013-02-05 13:54:56