Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何对WordProcessingDocument中的页面重新编号?_C#_Ms Word_Openxml_Openxml Sdk - Fatal编程技术网

C# 如何对WordProcessingDocument中的页面重新编号?

C# 如何对WordProcessingDocument中的页面重新编号?,c#,ms-word,openxml,openxml-sdk,C#,Ms Word,Openxml,Openxml Sdk,我使用OpenXMLSDK创建了一个大的(约1000页)word文档。当我第一次使用word应用程序打开它时,它在状态栏中显示“word正在对test.docx的页面重新编号”,并持续大约15秒。我犯了一个错误 这种行为的后果。此步骤完成后,文档将被更改,需要保存。新版本的文件大约是原始文件的两倍大 只需调用 document.SaveAs("someFilePath"); 这种行为到底是什么?如何以编程方式对文档创建过程中(或之后)的页面重新编号?您不能对WordprocessingDocu

我使用OpenXMLSDK创建了一个大的(约1000页)word文档。当我第一次使用word应用程序打开它时,它在状态栏中显示“word正在对test.docx的页面重新编号”,并持续大约15秒。我犯了一个错误 这种行为的后果。此步骤完成后,文档将被更改,需要保存。新版本的文件大约是原始文件的两倍大

只需调用

document.SaveAs("someFilePath");

这种行为到底是什么?如何以编程方式对文档创建过程中(或之后)的页面重新编号?

您不能对
WordprocessingDocument
中的页面重新编号,因为这些页码不是存储在
WordprocessingDocument
中,而是在布局或呈现文档时创建的

典型的文档将页码定义为一个复杂字段,您可以在
FooterPart
(或者可能是
HeaderPart
)中包含的打开的XML标记中找到该字段。假设页码字段存储在
FooterPart
中,在最简单的情况下,
WordprocessingDocument
中可能有一个
FooterPart
(例如,具有单个节的文档)。即使您有多个
FooterPart
s,例如,因为您有多个部分,或者您的第一页、奇数页和偶数页的布局不同,文档中的
FooterPart
s也相对较少(至少与1000页相比)

当Word呈现文档以供打印或查看时,它还会根据
FooterPart
s呈现页码(仍使用我的示例)。对于1000页,这需要时间,因为Word并不是为这么大的文档构建的

如果您想自己完成Word的工作并执行布局,您需要了解构建布局引擎是极其复杂的,需要付出大量的努力