使用Interop查找Word文档部分中的页数

时间:2012-10-19 18:25:04

标签: c# ms-word vsto office-interop

我正在尝试使用c#中的Interop查找Word文档部分中的页数。

主要目标是确定标头是否可见。 (例如,文档只有1页,DifferentFirstpageHeaderFooter已启用,因此wdHeaderFooterPrimary存在但技术上未显示(因为只有1页而不是2页或更多页)。)所以,如果你能找到找出如何做到这一点的另一种方式,我也很好。

目前,如果文档中只有1个部分,WdInformation.wdActiveEndPageNumber有效,但如果有2部分,并且我正在处理第二部分,wdActiveEndPageNumber会给我总数页面包括第1节。

var section = headerFooter.Parent as Section;
int numOfPages = section.Range.Information[WdInformation.wdActiveEndPageNumber];

1 个答案:

答案 0 :(得分:4)

我没有C#,但使用VBA语法你需要的“section n”是

一个。如果n = 1那么你看看

theDocument.sections[1].Range.Information[WdInformation.wdActiveEndPageNumber]

湾如果n > 1然后你确定存在该部分,那么看看

theDocument.sections[n].Range.Information[WdInformation.wdActiveEndPageNumber]-
theDocument.sections[n-1].Range.Information[WdInformation.wdActiveEndPageNumber]

并注意如果在n部分的最后一页上有连续的分节符,则情况(b)可以返回0。我不知道你所拥有的标题意味着什么,但我希望这意味着你只有第一页标题。