使用C#代码在Word文档中添加或删除可编辑区域
作者:2501_93070778
在 Word 文档中添加可编辑区域的功能,可以帮助用户指定某些部分供他人编辑,同时保护文档的其他部分不被意外修改,本文将介绍如何在 C# 项目中使用 Spire.Doc for .NET 在 Word 文档中添加或删除可编辑区域,需要的朋友可以参考下
引言
在 Word 文档中添加可编辑区域的功能,可以帮助用户指定某些部分供他人编辑,同时保护文档的其他部分不被意外修改。这在协作文档、文档审阅和添加评论等场景中尤其有用。另一方面,删除可编辑区域的功能,则可以在特定部分不再需要编辑时,将文档恢复为只读状态,从而确保文档内容的完整性和安全性。本文将介绍如何在 C# 项目中使用 Spire.Doc for .NET 在 Word 文档中添加或删除可编辑区域。
安装 Spire.Doc for .NET
首先,您需要将 Spire.Doc for .NET 包中包含的 DLL 文件添加为 .NET 项目的引用。这些 DLL 文件可以通过以下链接下载,或者通过 NuGet 进行安装。
PM> Install-Package Spire.Doc
在 C# 中向 Word 文档添加可编辑区域
在 Word 文档中添加可编辑区域的步骤包括:在文档中插入 PermissionStart 和 PermissionEnd 对象,并将文档设置为只读保护模式,以确保指定区域内的内容可编辑,而文档的其他部分保持只读。
示例代码如下:
using Spire.Doc;
using Spire.Doc.Documents;
namespace SpireDocDemo
{
internal class Program
{
static void Main(string[] args)
{
//创建一个新的文档对象
Document document = new Document();
//从指定路径加载文档
document.LoadFromFile("Sample1.docx");
//获取文档的第一个节
Section section = document.Sections[0];
//创建一个权限开始对象
PermissionStart permissionStart = new PermissionStart(document, "restricted1");
//创建一个权限结束对象
PermissionEnd permissionEnd = new PermissionEnd(document, "restricted1");
//获取该节中的第二段
Paragraph paragraph = section.Paragraphs[1];
//在段落开头插入权限开始对象
paragraph.ChildObjects.Insert(0, permissionStart);
//在段落末尾添加权限结束对象
paragraph.ChildObjects.Add(permissionEnd);
//将文档设置为只读保护
document.Protect(ProtectionType.AllowOnlyReading, "123456");
//将修改后的文档保存到指定路径
document.SaveToFile("AddedEditingPermissionsArea.docx", FileFormat.Docx);
//关闭文档并释放文档对象占用的资源
document.Close();
document.Dispose();
}
}
}在 C# 中删除 Word 文档中的可编辑区域
从 Word 文档中删除可编辑区域的关键步骤包括:遍历文档中的每个段落,并移除其中的 PermissionStart 和 PermissionEnd 对象。
示例代码如下:
using Spire.Doc;
using Spire.Doc.Documents;
namespace SpireDocDemo
{
internal class Program
{
static void Main(string[] args)
{
//创建一个新的文档对象
Document document = new Document();
//从指定路径加载文档
document.LoadFromFile("Sample2.docx");
//遍历文档的各个节
for (int a = 0; a < document.Sections.Count; a++)
{
//获取当前节的正文
Body body = document.Sections[a].Body;
//遍历正文中的子对象
for (int i = 0; i < body.ChildObjects.Count; i++)
{
//检查子对象是否为段落
if (body.ChildObjects[i] is Paragraph)
{
//获取当前段落
Paragraph paragraph = (Paragraph)body.ChildObjects[i];
//从段落的最后一个子对象开始向前遍历
for (int j = paragraph.ChildObjects.Count - 1; j >= 0; j--)
{
//获取当前子对象
DocumentObject documentObject = paragraph.ChildObjects[j];
//如果是权限开始对象,移除它
if (documentObject.DocumentObjectType == DocumentObjectType.PermissionStart)
{
paragraph.ChildObjects.RemoveAt(j);
}
//如果是权限结束对象,移除它
else if (documentObject.DocumentObjectType == DocumentObjectType.PermissionEnd)
{
paragraph.ChildObjects.RemoveAt(j);
}
}
}
}
}
//将修改后的文档保存到指定路径
document.SaveToFile("RemovedEditingPermissionsArea.docx", FileFormat.Docx);
//关闭文档并释放文档对象占用的资源
document.Close();
document.Dispose();
}
}
}申请临时许可证
如果您想从生成的文档中移除评估消息,或解除功能限制,可以联系官方销售申请一个 30 天的试用许可证。
到此这篇关于使用C#代码在Word文档中添加或删除可编辑区域的文章就介绍到这了,更多相关C# Word添加或删除可编辑区域内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
