问题描述
我正在服务器端处理Word 2010文档,并且该文档中的某些内容控件已选中以下锁定"属性
I am manipulating a Word 2010 document on the server-side and some of the content controls in the document have the following Locking properties checked
- 内容控件无法删除
- 内容无法编辑
任何人都可以建议使用OpenXML SDK将这些Locking选项设置为false或将其全部删除吗?
Can anyone advise set these Locking options to false or remove then altogether using the OpenXML SDK?
推荐答案
openxml SDK提供了Lock
类和LockingValues
枚举以编程方式设置选项:
The openxml SDK provides the Lock
class and the LockingValues
enumerationfor programmatically setting the options:
- 内容控件无法删除,并且
- 内容无法编辑
因此,要将这两个选项设置为"false"(LockingValues.Unlocked
),搜索文档中的所有SdtElement
元素,并将Val
属性设置为LockingValues.Unlocked
.
So, to set those two options to "false" (LockingValues.Unlocked
),search for all SdtElement
elements in the document and set the Val
property toLockingValues.Unlocked
.
下面的代码显示了一个示例:
The code below shows an example:
static void UnlockAllSdtContentElements()
{
using (WordprocessingDocument wordDoc =
WordprocessingDocument.Open(@"c:\temp\myword.docx", true))
{
IEnumerable<SdtElement> elements =
wordDoc.MainDocumentPart.Document.Descendants<SdtElement>();
foreach (SdtElement elem in elements)
{
if (elem.SdtProperties != null)
{
Lock l = elem.SdtProperties.ChildElements.First<Lock>();
if (l == null)
{
continue;
}
if (l.Val == LockingValues.SdtContentLocked)
{
Console.Out.WriteLine("Unlock content element...");
l.Val = LockingValues.Unlocked;
}
}
}
}
}
static void Main(string[] args)
{
UnlockAllSdtContentElements();
}
这篇关于如何在Word 2010文档中使用OpenXML SDK解锁内容控件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!