1

我有一个 Word 2007 文档,我想在其中插入一个现有的 Word 文档 - 同时保留两个文档的页眉/页脚、图形、边框等。

我正在使用 C# 中的 Word API 执行此操作。

听起来很简单,我的意思是您肯定只使用“InsertFile”方法...除了在 Word 2007 中,“插入文件”功能现在实际上是“从文件中插入文本”,它就是这样做的 - 省略了页面边框, 图形和页脚等。

好吧,我将使用复制和粘贴来代替,就像这样......

_Document sourceDocument = wordApplication.Documents.Open(insert the 8 million by ref parameters Word requries)
sourceDocument.Activate(); // This is the document I am copying from 
wordApplication.Selection.WholeStory();
wordApplication.Selection.Copy();
targetDocument.Activate(); // This is the document I am pasting into
wordApplication.Selection.InsertBreak(wdSectionBreakNextPage);
Selection.PasteAndFormat(wdFormatOriginalFormatting);
wordApplication.Selection.InsertBreak(wdSectionBreakNextPage);

它可以满足您的期望,获取源文档,选择所有内容,复制它然后将其粘贴到目标文档中。因为我在粘贴之前添加了分节符,所以它还保留了两个文档的边框、页眉/页脚。

但是 -现在这是我遇到问题的地方。如果我粘贴在目标文档的末尾,则粘贴包括边框、标题等。如果我将它粘贴在中间 - 尽管前面有分节符,那么只有文本被粘贴并且标题和边框等会丢失。

4

4 回答 4

1

书签功能会起作用吗?InsertFile 包含从中获取的参数,这可能会解决问题。你可能已经考虑过了

http://msdn.microsoft.com/en-us/library/microsoft.office.tools.word.bookmark.insertfile.aspx

于 2009-03-27T12:01:27.160 回答
1

这种对我有用。仍在寻找更好的解决方案。请务必添加对 Interop.Word 的引用。我知道这是一个旧线程,我正在使用 Word 2016,但我搜索了很长时间,不得不将解决方案拼凑在一起。

using Word = Microsoft.Office.Interop.Word;
var wordApp = new Word.Application();
wordApp.Visible = true;
wordApp.Documents.Add(@"C:\workingtemplate.dotx");
//Open is for an existing document. 
//Add is to use a template.
//Get the range to be able to then collapse and have the correct insertion point
var rng = wordApp.ActiveDocument.Range();
rng.Collapse(Word.WdCollapseDirection.wdCollapseEnd);
rng.InsertBreak(Word.WdBreakType.wdPageBreak);
rng.InsertFile(@"C:\temp.docx");
于 2017-01-18T19:04:51.637 回答
0

我实际上正在研究类似的东西,奇怪的是发现了一个用 C# 编写的 powershell cmdlet 库,您可能会发现它很有用:

用于 Open XML 的 Powertools

如果相同的图像位于文档的多个部分,那么继承的页眉和页脚以及无法正确复制图像引用仍然存在一些问题,但是很多结构已经到位。

于 2009-08-31T14:49:01.547 回答
-3

将 WORD 文档插入到另一个 WORD 2007 文档中 我发现 WORD 2007 成功的唯一方法是...打开要添加页面的文档,然后转到功能区上的“插入”选项卡,查看“文本”部分(与文本框、艺术字等相同的位置)并选择“对象”,出现下拉菜单,然后选择“文件中的文本”。从这里您只需选择要插入的文档并完成,您可能需要进行一些细微的调整,但它们的格式都正确,请务必将光标放在您要插入新内容的位置。希望这可以帮助

于 2010-04-01T06:38:55.547 回答