如何使用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();
}
这适用于我的
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不是最后一页时,才会执行此操作。
我们可以将其全部放入初始化范围内,但这将使代码无法读取。