C# 设置Word文档保护(加密、解密、权限设置)

C#

浏览数:275

2019-4-19

对于一些重要的word文档,出于防止资料被他人查看,或者防止文档被修改的目的,我们在选择文档保护时可以选择文档打开添加密码或者设置文档操作权限等,在下面的文章中将介绍如何使用类库Free Spire.Doc for .NET来加密、解密以及给文档设置操作权限等,主要分为以下几个要点来具体阐述

  • 添加Word密码保护
  • 解除Word密码保护
  • 设置word文档操作权限
  • 设置Word部分内容编辑权限

工具使用: 安装Free Spire.Doc之后,在程序中引用Spire.Doc.dll即可(dll可以在安装路径下的Bin文件夹中获取)

1.  Word文档加密

using Spire.Doc;

namespace EncryptWord_Doc
{
    class Program
    {
        static void Main(string[] args)
        {
            //初始化一个Document类实例并加载需要加密的Word文档
            Document doc = new Document(@"C:\Users\Administrator\Desktop\sample.docx");
            //设置打开Word文档的密码
            doc.Encrypt("abc123");
            //保存并打开文档
            doc.SaveToFile("加密文件.docx", FileFormat.Docx2013);
            System.Diagnostics.Process.Start("加密文件.docx");
        }
    }
}

调试运行程序,生成文档后,可见如下文档效果:

正确输入密码后就可以打开文档了。

2.  Word文档解密

using Spire.Doc;

namespace DecryptWord_Doc
{
    class Program
    {
        static void Main(string[] args)
        {
            //初始化一个Document类实例
            Document doc = new Document();
            //加载密码参数为"adc123"的Word文档
            doc.LoadFromFile("加密文件.docx", FileFormat.Docx2013, "abc123");

            //调用方法RemoveEncryption()解除密码保护
            doc.RemoveEncryption();
            //保存文档并打开文档
            doc.SaveToFile("解密文件.docx", FileFormat.Docx2013);
            System.Diagnostics.Process.Start("解密文件.docx");
        }
    }
}

此时打开文档时已经没有密码保护了。

3.  Word文档操作权限设置

(这里提供了4种不同类型的操作权限,可以根据自己的需要选择相应的类型)

using Spire.Doc;

namespace EditPermissions_Doc
{
    class Program
    {
        static void Main(string[] args)
        {
            //新建一个Document类对象并加载需要设置编辑权限的Word文档
            Document doc = new Document(@"C:\Users\Administrator\Desktop\sample.docx");
                  
            //不允许任何更改(只读),设置解除限制编辑的密码
            doc.Protect(ProtectionType.AllowOnlyReading, "123");

            //只允许填写窗体,设置解除限制编辑的密码
            doc.Protect(ProtectionType.AllowOnlyFormFields, "123");

            //只允许批注,设置解除限制编辑的密码
            doc.Protect(ProtectionType.AllowOnlyComments, "123");

            //只允许修订,设置解除限制编辑的密码
            doc.Protect(ProtectionType.AllowOnlyRevisions, "123");

            //保存并预览文件
            doc.SaveToFile("有限权限文档3.docx",FileFormat.Docx2013);
            System.Diagnostics.Process.Start("有限权限文档3.docx");
        }
    }
}

4. 设置部分文档内容权限

(当文档中部分内容不想被他人修改时,也可以设置该部分内容的可编辑权限,参考如下代码。)

using Spire.Doc;

namespace LockSpecifiedSections_Doc
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建一个Document类对象
            Document doc = new Document();  
            //初始化2个section类实例,并添加文本内容到section
            Section s1 = doc.AddSection();
            Section s2 = doc.AddSection();
            s1.AddParagraph().AppendText("section 1");
            s2.AddParagraph().AppendText("section 2");

            //设置保护模式及密码
            doc.Protect(ProtectionType.AllowOnlyFormFields, "123");
            //设置section2 的保护属性为false,即,可编辑
             s2.ProtectForm = false;

            //保存并打开文档
            doc.SaveToFile("Protect_Section.docx",FileFormat.Docx2010);
            System.Diagnostics.Process.Start("Protect_Section.docx");
        }
    }
}

此时,生成的文档中,section1 这里是设置了编辑权限的,如果想要编辑需要输入密码。

以上全部内容为本次关于Word文档加密、解密以及文档操作权限设置的全部代码操作,代码供参考。如果喜欢,欢迎转载(转载请注明出处)。

感谢浏览!