5

我正在使用下面的代码来获取页数,但它没有给出实际的页数(PFA)。获得总页数的更好方法是什么?

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

错误的页数

实际页数为 10

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

提前致谢。

4

2 回答 2

4

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

int pageCount = (int) document.ExtendedFilePropertiesPart.Properties.Pages.Text;

然而,在实践中,这并不可靠。它可能有效,但话又说回来,它可能不起作用 - 这完全取决于 1)Word 在文件关闭之前设法保存在文件中的内容,以及 2)可能对关闭的文件进行了何种编辑。

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

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

于 2018-11-27T14:28:09.087 回答
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" }));
于 2020-08-12T08:15:23.967 回答