采用OpenXml(服务器不依赖Office组件)
在word生成的最后加上代码:
using (WordprocessingDocument docx = WordprocessingDocument.Open(sourceRealReportPath, true)){//操作word代码…//更新域docx.MainDocumentPart.DocumentSettingsPart.Settings.Append(new DocumentFormat.OpenXml.Wordprocessing.UpdateFieldsOnOpen() { Val = true });docx.Close();}
采用这种方式生成word之后,需要打开word时才触发更新更新域操作,且打开word时会有提示框,若要去除提示框,需在客户机上进行以下两步操作:
1、修改注册表:(找到对应office版本)
HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Word\Options
新增或修改DWORD Value:FieldCalcSecurityLevel;值设置为0
注意:
1、这里存在问题,如果不打开word的话,目录无法更新,必须有使用office打开word的操作
2、不打开word,直接通过office web 365转Pdf或者在线阅读word,目录也不会更新
2、修改office->选项->信任中心->信任中心设置->受保护视图:
移除掉:”为来自Internet的文件启用受保护视图”前面的勾选