我有一个Word文档,其中包含从第三方下载的宏。保存并打开文档后,它看起来不错,但是当我打印时,它会丢失与宏一起应用的数据,并显示“错误!找不到参考源!”。我发现如果按CTRL-A和CTRL-F11,它将锁定所有字段。之后,我去打印,数据就在那里。我想使用Open XML SDK实用程序加载此文档并将此锁定应用于word文档,然后再保存。这可能吗?我已经加载了文档,但是似乎找不到如何将字段设置为锁定状态。
答案 0 :(得分:0)
无法锁定整个文档的字段-使用Word Open XML时需要分别锁定每个字段。它需要FieldLock
的FieldChar
object属性。
这对应于xml
<w:r>
<w:fldChar w:fldCharType="start" w:fldLock="true"/>
</w:r>
以下代码段将锁定文档中的所有域代码。
using (WordprocessingDocument pkgDoc = WordprocessingDocument.Open(fileNameDoc, true))
{
int countFields = 0;
Body body = pkgDoc.MainDocumentPart.Document.Body;
FieldChar[] fieldchars = (FieldChar[]) body.Descendants<FieldChar>().ToArray();
foreach (FieldChar fc in fieldchars)
{
fc.FieldLock = true;
countFields++;
}
System.Diagnostics.Debug.Print(countFields.ToString() + " fields locked");
}