如何使用c#根据页面范围提取Docx页面

本文关键字:范围 提取 Docx 页面 何使用 | 更新日期: 2023-09-27 18:00:09

Hi请帮助从docx文件中提取页面,根据页面范围(如2-4或10-15)。我是使用提到的,但它没有正确提取,请纠正我需要更改代码的地方。

public void docx( string path,int pageStart,int pageend)
 {
var app = new Application();
  app.Visible = true;
  var doc = app.Documents.Open(path);
  //This Range object will contain each page.
      var page = doc.Range(pageStart, pageend);
      if (pageStart < pageend)
      {
          page.End = page.GoTo(What: WdGoToItem.wdGoToPage, Which: WdGoToDirection.wdGoToAbsolute, Count: pageStart + pageend).Start - pageStart;

      }
      else
      {
          page.End = doc.Range().End;
      }
      //Copy and paste the contents of the Range into a new document
      page.Copy();
      var doc2 = app.Documents.Add();
      doc2.Range().Paste();
} 

如何使用c#根据页面范围提取Docx页面

这适用于我的

var range = doc.Range();
range.Start = doc.GoTo(WdGoToItem.wdGoToPage, WdGoToDirection.wdGoToAbsolute, pageStart).Start;
if (pageend < doc.ComputeStatistics(WdStatistic.wdStatisticPages, false))
{
    range.End = doc.GoTo(WdGoToItem.wdGoToPage, WdGoToDirection.wdGoToAbsolute, pageend + 1).End - 1;
}
range.Copy();

新区域选择整个文档,因此其"结束"已经是文档的结束。起始页是根据您需要的起始页的起始页设置的。结尾设置为页面的开头(pageend+1),减去1个字符(返回)。这将把我们带到页面末尾。只有当pageend不是最后一页时,才会执行此操作。

我们可以将其全部放入初始化范围内,但这将使代码无法读取。