码迷,mamicode.com
首页 > Windows程序 > 详细

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

时间:2018-03-27 23:54:50      阅读:298      评论:0      收藏:0      [点我收藏+]

标签:star   ram   str   文件夹   生成   load   gif   iss   new   

 

对于一些重要的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文档加密、解密以及文档操作权限设置的全部代码操作,代码供参考。如果喜欢,欢迎转载(转载请注明出处)。

感谢浏览!

 

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

标签:star   ram   str   文件夹   生成   load   gif   iss   new   

原文地址:https://www.cnblogs.com/cjm123/p/8660810.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!