更新字段
通常,插入Microsoft Word的字段已包含最新值。 例如,如果字段是公式或页码,则它将包含给定文档版本的正确计算值。 但是,如果您有一个应用程序生成或修改具有字段(如合并两个文档或用数据填充它)的文档,那么理想情况下,必须更新所有字段才能使文档有用。
如何更新字段
加载文档时,Aspose.Words模仿Microsoft Word的行为,并关闭自动更新字段的选项。 行为可以总结如下:
- 当您打开/保存文档时,字段保持不变
- 您可以在需要时显式更新文档中的所有字段,例如,rebuild
TOC
- 当您呈现为PDF或XPS时,与页眉/页脚中的页码相关的字段将更新
- 执行mail merge时,所有字段都会自动更新
以编程方式更新字段
要显式更新整个文档中的字段,只需调用UpdateFields方法即可。 要更新文档部分中包含的字段,请获取Range对象并调用UpdateFields方法。 在Aspose.Words中,您可以为文档树中的任何节点获取Range,例如Section, HeaderFooter, Paragraph, 等。 使用Node.Range属性。您可以通过调用Update方法来更新单个字段的结果。
渲染过程中自动更新页面相关字段
当您执行将文档转换为固定页面格式(例如PDF或XPS)时,Aspose.Words将自动更新文档页眉/页脚中与页面布局相关的字段PAGE
,PAGEREF
。 此行为模拟打印文档时Microsoft Word的行为。
如果要更新文档中的所有其他字段,则需要在呈现文档之前调用UpdateFields。
下面的代码示例演示如何在呈现文档之前更新所有字段:
Mail Merge期间自动字段更新
当您执行mail merge时,文档中的所有字段都将自动更新。 这是因为mail merge是字段更新的情况。 程序遇到mail merge字段并需要更新其结果,这涉及从数据源中抓取值并将其插入到字段中。 逻辑当然更复杂,例如,当到达文档/mail merge区域的末尾但仍有进一步的数据要合并时,则需要复制该区域并更新新的字段集。
保存前更新LastSavedTime属性
保存文档时可以使用UpdateLastSavedTimeProperty属性是否更新相应的内置文档属性LastSavedTime。
下面的代码示例演示如何更新此属性: