【问题标题】:Can't get the pages count from a word document with OpenXml无法使用 OpenXml 从 Word 文档中获取页数
【发布时间】:2020-11-13 12:32:35
【问题描述】:

我将 OpenXML SDK v2.11.3 与 .net core 3.1 一起使用,当我尝试从 word 文档中获取总页数时,有时它会返回空值。

using (var document = WordprocessingDocument.Open(memoryStream, true))
{​​​​
    var pages = Convert.ToInt32(document.ExtendedFilePropertiesPart.Properties.Pages.Text);
}

System.NullReferenceException: '对象引用未设置为 一个对象的实例。 DocumentFormat.OpenXml.ExtendedProperties.Properties.Pages.get 返回 null。

从 docx 文件中获取总页数的最佳方法是什么?

【问题讨论】:

    标签: c# xml openxml docx openxml-sdk


    【解决方案1】:

    自从

    1. 分页是一个依赖于渲染的动态属性,
    2. 任何给定的 DOCX 文件可能已经或可能没有被渲染过,并且
    3. OpenXML SDK 不渲染或执行渲染所需的计算,

    您不一定要从任意 DOCX 文件中获取页数。

    有关更多详细信息和一些有限的解决方法,请参阅How to access OpenXML content by page number?

    【讨论】:

    • 感谢您的宝贵时间。我不明白为什么有时在特定的 docx 文件中它可以工作......
    • 这将取决于文档的历史,也许还有最后一次操作文档的程序的实现。例如,在一个极端情况下,您可以通过编程方式创建一个 DOCX 文件,永远不要在 Word 中打开它,然后发现它不知道第一次呈现时会显示多少页。
    猜你喜欢
    • 2022-09-23
    • 1970-01-01
    • 1970-01-01
    • 2015-06-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-29
    相关资源
    最近更新 更多