如何使用Open XML SDK获得MS Word的总页数?

时间:2018-11-27 05:43:41

标签: ms-word openxml openxml-sdk

我正在使用以下代码来获取页数,但未提供实际的页数(PFA)。获取总页数的更好方法是什么?

var pageCount = doc.ExtendedFilePropertiesPart.Properties.Pages.Text.Trim();

Wrong page count

Actual pages are 10

注意:我们无法在我的Azure Web应用程序服务中使用Office主互操作程序集

谢谢。

2 个答案:

答案 0 :(得分:1)

理论上,以下属性可以使用Open XML SDK从Word Open XML文件返回该信息:

return files.length > 0 ? files[0].getAbsolutePath() : null;

但是,在实践中,这是不可靠的。它可能行得通,但又可能不行,这完全取决于:1)Word在关闭文件之前设法保存在文件中的内容; 2)对关闭的文件进行了什么样的编辑。

获取页码或页数的唯一确定的方法是在Word应用程序界面中打开文档。页数和页数是在Word编辑过程中动态计算的。关闭文档时,此信息是静态的,不一定是打开或打印文档时的信息。

另请参见https://github.com/OfficeDev/Open-XML-SDK/issues/22进行确认。

答案 1 :(得分:1)

此代码对我有用。它将“ Y的第X页”添加到文档中。

para = new Paragraph(new Run(
       new Text() { Text = "Page ", Space = SpaceProcessingModeValues.Preserve },
       new SimpleField() { Instruction = "PAGE" }, 
       new Text() { Text = " of ", Space = SpaceProcessingModeValues.Preserve },  
       new SimpleField() { Instruction = "NUMPAGES \\*MERGEFORMAT" }));