对于一些重要的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, ""); //只允许填写窗体,设置解除限制编辑的密码
doc.Protect(ProtectionType.AllowOnlyFormFields, ""); //只允许批注,设置解除限制编辑的密码
doc.Protect(ProtectionType.AllowOnlyComments, ""); //只允许修订,设置解除限制编辑的密码
doc.Protect(ProtectionType.AllowOnlyRevisions, ""); //保存并预览文件
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, "");
//设置section2 的保护属性为false,即,可编辑
s2.ProtectForm = false; //保存并打开文档
doc.SaveToFile("Protect_Section.docx",FileFormat.Docx2010);
System.Diagnostics.Process.Start("Protect_Section.docx");
}
}
}

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

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

感谢浏览!

C# 设置Word文档保护(加密、解密、权限设置)的更多相关文章

  1. C#操作Word文档(加密、解密、对应书签插入分页符)

    原文:C#操作Word文档(加密.解密.对应书签插入分页符) 最近做一个项目,客户要求对已经生成好的RTF文件中的内容进行分页显示,由于之前对这方面没有什么了解,后来在网上也找了相关的资料,并结合自己 ...

  2. python实用小技能分享,教你如何使用 Python 将 pdf 文档进行 加密 解密

    上次说了怎么将word转换为pdf格式 及 实现批量将word转换为pdf格式(点击这里),这次我又get到一个新技能–使用 Python 将 pdf 文档进行 加密 解密,哈哈哈 希望帮到更多人! ...

  3. 如何通过C#/VB.NET设置Word文档段落缩进

    缩进是指调整文本与页面边界之间的距离.在水平标尺,有四个段落缩进滑块:首行缩进.悬挂缩进.左缩进以及右缩进.在对于word文档的录入时,常常需要注意录入的格式,通过合理地设置段落格式,可以让文稿看起来 ...

  4. word 文档如何加密

    给Word文档加密主要有以下几个方法:文件加密文件菜单设置:1.打开需要加密的Word文档.2.选“文件”的“另存为”,出现“另存为”对话框,在“工具”中选“常规选项”,出现“保存”选项卡.3.分别在 ...

  5. C# 设置word文档页面大小

    我们知道,在MS word中,默认的页面大小是letter(8.5’’x11’’),除此之外,word还提供了其他一些预定义的页面大小,如Legal (5.4’’x14’’),A3 (11.69’’x ...

  6. C# 设置Word文档背景(纯色/渐变/图片背景)

    Word是我们日常生活.学习和工作中必不可少的文档处理工具.精致美观的文档能给人带来阅读时视觉上的美感.在本篇文章中,将介绍如何使用组件Free Spire.Doc for .NET(社区版)给Wor ...

  7. 将表格添加到Word文档中 ,包括表格样式设置

    创建 Table 对象并设置其属性 在您将表格插入文档之前,必须创建 Table 对象并设置其属性. 要设置表格的属性,请创建TableProperties对象并为其提供值. TablePropert ...

  8. (转)C#操作Word文档

    原文1地址:http://www.cnblogs.com/lantionzy/archive/2009/10/23/1588511.html 原文2地址: http://www.cnblogs.com ...

  9. WORD-如何解除WORD文档的锁定

    Word文档保护破解 般来说WORD文档有两种密码打开密码和文档保护密码下面介绍几种破解文档保护密码方法 方法1:插入文件法 启动WORD新建空白文档执行插入→文件打开插入文件对框定位需要解除保护文档 ...

随机推荐

  1. XCode5添加新建类模板(Cocos2dx Template Class for Scene or Layer)

    猴子原创,欢迎转载.转载请注明: 转载自Cocos2D开发网–Cocos2Dev.com,谢谢! 原文地址: http://www.cocos2dev.com/?p=505 因为常用cocos2dx开 ...

  2. BFS与DFS总结

    最近一直在看DFS和BFS,感觉要晕的GJ. DFS思想: 一直往深处走,直到找到解或者走不下去为止 DFS框架: DFS(dep,-)  //dep代表目前DFS的深度 {       if (找到 ...

  3. 下载android4.4.2源码全过程(附已下载的源码)

    今天在下载andriod源码,特来与大家分享一下我的经验.当然,网上教下载源码的教程较多,本文主要针对在GFW下下载源码出现的各种问题的解决方法. 1.首先安装下载客户端git , curl. 命令如 ...

  4. 如何在Cocos2D 1.0 中掩饰一个精灵(三)

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 尝试编译运行,在你每一次点击屏幕的时候,你将看到我可爱的妻子制作 ...

  5. Android PackageManager源码浅析以及静默安装实现方式

    Aandroid应用管理    >http://blog.csdn.net/sk719887916/article/details/50314017 skay整理.        >201 ...

  6. N个数组中所有元素的排列组合(笛卡尔积)算法

    (1)N个数组对象中所有元素排列组合算法 private List<List<Object>> combineAlg(List<Object[]> nArray) ...

  7. java的map

    Map是一种把键对象和值对象进行关联的容器,而一个值对象又可以是一个Map,依次类推,这样就可形成一个多级映射. 这里有详细的论述http://www.oracle.com/technetwork/c ...

  8. Oracle 11g Articles

    发现一个比较有意思的网站,http://www.oracle-base.com/articles/11g/articles-11g.php Oracle 11g Articles Oracle Dat ...

  9. Leetcode_119_Pascal's Triangle II

    本文是在学习中的总结,欢迎转载但请注明出处:http://blog.csdn.net/pistolove/article/details/41851069 Given an index k, retu ...

  10. 9.9、Libgdx之软键盘

    (官网:www.libgdx.cn) 大部分Android设备和所有的iOS设备没有实体键盘.取而代之的是软键盘,为了调用软键盘,可以使用如下方法: Gdx.input.setOnscreenKeyb ...