我使用openxml-sdk创建了一个大文件(约1000页)。当我第一次使用word应用程序打开它时,它在状态栏中显示“ Word正在重新编号test.docx的页面” ,并且这样做大约15秒钟。我做了一个 german screenshot的行为。完成此步骤后,将更改文档并需要保存。文件的新版本约为原始文件的两倍。
只需调用一次即可保存文档
document.SaveAs("someFilePath");
这到底是什么行为?我如何以编程方式在创建文档时(或之后)重新编号页面?
答案 0 :(得分:2)
您无法对WordprocessingDocument
中的页面进行重新编号,因为这些页码不是存储在WordprocessingDocument
中,而是在布局或渲染文档时创建的。
一个典型的文档将页码定义为一个复杂的字段,您可以在FooterPart
(或可能为HeaderPart
)中包含的Open XML标记中找到该页码。假设页码字段存储在FooterPart
中,则在最简单的情况下,您的FooterPart
中可能只有一个WordprocessingDocument
(例如,文档只有一个小节)。即使您有多个FooterPart
,例如,由于您有多个部分,或者首页,奇数页和偶数页的布局不同,您的文档中FooterPart
的数量也相对较少(在与您的1.000页相比)。
当Word渲染文档以供打印或查看时,它还会根据您的FooterPart
渲染页码(仍然以我的示例为基础)。对于1.000页,这很费时间,因为Word根本不是为那么大的文档构建的。
如果您想自己完成Word的工作并执行布局,则需要了解构建布局引擎非常复杂并且需要大量的精力。