如何复制Word文档的特定页面

时间:2018-10-06 09:36:45

标签: c# ms-word openxml openxml-sdk

我有一个Word文档,其中包含多个页面,我想使用OpenXml SDK将某些页面复制到新的Word文档中。我进行了一些网络搜索,并获得了下面的代码,该代码可读取整个文档并将其复制到新文档中

int

现在,在上面的代码中,我如何才能仅读取特定页面并将其复制到新页面?请提供建议。谢谢

2 个答案:

答案 0 :(得分:0)

除非已使用手动分页符来生成文档中的每个页面,否则您将无法执行操作。

在Word应用程序中打开文档时,Word将在运行时自动生成分页符。分页符的实际位置是完全动态的,基于完成的编辑,并且在编辑过程中“一直”重新计算。

关闭文档时,该信息可靠地保存在文档中。原因之一是,当在另一台机器上打开文档或选择其他打印机(驱动程序)时,文档的布局可能会有所不同。

因此除非使用某种方式可以识别每个页面,例如手动分页,否则无法使用Office Open XML文件格式处理单个页面。

答案 1 :(得分:-1)

使用Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application(); 而不是OpenXML

//dummy value to satisfy params
object oMissing = System.Reflection.Missing.Value;

//copy specific page/s
object what = WdGoToItem.wdGoToPage;
object which = WdGoToDirection.wdGoToFirst;
object count1 = 1;
Range startRange = word.Selection.GoTo(ref what, ref which, ref count1, ref oMissing);
object count2 = (int)count + 1;
Range endRange = word.Selection.GoTo(ref what, ref which, ref count2, ref oMissing);
endRange.SetRange(startRange.Start, endRange.End - 1);
endRange.Select();
word.Selection.Copy();
//save...