我有一个Word文档,其中包含多个页面,我想使用OpenXml SDK将某些页面复制到新的Word文档中。我进行了一些网络搜索,并获得了下面的代码,该代码可读取整个文档并将其复制到新文档中
int
现在,在上面的代码中,我如何才能仅读取特定页面并将其复制到新页面?请提供建议。谢谢
答案 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...