您好请帮助根据页面范围(如2 - 4或10 - 15)从docx文件中提取页面。我是 使用提到,但它没有正确提取,请纠正我需要更改代码的地方。
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();
}
答案 0 :(得分:1)
这对我有用
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();
新范围选择整个文档,因此其End已经是文档的结尾。根据您需要的起始页面的开头设置开始。结束设置为页面的开头(pageend + 1),减去1个字符(返回)。这将把我们带到页面末页。只有当pageend不是最后一页时才会这样做。
我们可以在范围初始化中使用它,但这将使代码不可读。