C# 设置Word文档保护(加密、解密、权限设置)
对于一些重要的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文档保护(加密、解密、权限设置)的更多相关文章
- C#操作Word文档(加密、解密、对应书签插入分页符)
原文:C#操作Word文档(加密.解密.对应书签插入分页符) 最近做一个项目,客户要求对已经生成好的RTF文件中的内容进行分页显示,由于之前对这方面没有什么了解,后来在网上也找了相关的资料,并结合自己 ...
- python实用小技能分享,教你如何使用 Python 将 pdf 文档进行 加密 解密
上次说了怎么将word转换为pdf格式 及 实现批量将word转换为pdf格式(点击这里),这次我又get到一个新技能–使用 Python 将 pdf 文档进行 加密 解密,哈哈哈 希望帮到更多人! ...
- 如何通过C#/VB.NET设置Word文档段落缩进
缩进是指调整文本与页面边界之间的距离.在水平标尺,有四个段落缩进滑块:首行缩进.悬挂缩进.左缩进以及右缩进.在对于word文档的录入时,常常需要注意录入的格式,通过合理地设置段落格式,可以让文稿看起来 ...
- word 文档如何加密
给Word文档加密主要有以下几个方法:文件加密文件菜单设置:1.打开需要加密的Word文档.2.选“文件”的“另存为”,出现“另存为”对话框,在“工具”中选“常规选项”,出现“保存”选项卡.3.分别在 ...
- C# 设置word文档页面大小
我们知道,在MS word中,默认的页面大小是letter(8.5’’x11’’),除此之外,word还提供了其他一些预定义的页面大小,如Legal (5.4’’x14’’),A3 (11.69’’x ...
- C# 设置Word文档背景(纯色/渐变/图片背景)
Word是我们日常生活.学习和工作中必不可少的文档处理工具.精致美观的文档能给人带来阅读时视觉上的美感.在本篇文章中,将介绍如何使用组件Free Spire.Doc for .NET(社区版)给Wor ...
- 将表格添加到Word文档中 ,包括表格样式设置
创建 Table 对象并设置其属性 在您将表格插入文档之前,必须创建 Table 对象并设置其属性. 要设置表格的属性,请创建TableProperties对象并为其提供值. TablePropert ...
- (转)C#操作Word文档
原文1地址:http://www.cnblogs.com/lantionzy/archive/2009/10/23/1588511.html 原文2地址: http://www.cnblogs.com ...
- WORD-如何解除WORD文档的锁定
Word文档保护破解 般来说WORD文档有两种密码打开密码和文档保护密码下面介绍几种破解文档保护密码方法 方法1:插入文件法 启动WORD新建空白文档执行插入→文件打开插入文件对框定位需要解除保护文档 ...
随机推荐
- lager_transform未定义错误
lager_transform未定义错误rebar编译时报错:D:\server\six>d:/tools/rebar/rebar.cmd compile==> mysql (compil ...
- 1079. Total Sales of Supply Chain (25) -记录层的BFS改进
题目如下: A supply chain is a network of retailers(零售商), distributors(经销商), and suppliers(供应商)-- everyon ...
- [ExtJS5学习笔记]第二十三节 Extjs5中表格gridpanel的列格式设置
本文地址:http://blog.csdn.net/sushengmiyan/article/details/39665979 官方文档:http://docs.sencha.com/extjs/5. ...
- Android简易实战教程--第十四话《模仿金山助手创建桌面Widget小部件》
打开谷歌api,对widget小部件做如下说明: App Widgets are miniature application views that can be embedded in otherap ...
- Cocos2Dv3.4在AppDelegate中不返回的情况及解决
大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 我们通常想在app启动的早期做一些事情,可能放在AppDeleg ...
- 【一天一道LeetCode】#260. Single Number III
一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a ...
- SDL2源代码分析5:更新纹理(SDL_UpdateTexture())
===================================================== SDL源代码分析系列文章列表: SDL2源代码分析1:初始化(SDL_Init()) SDL ...
- Dynamics CRM Microsoft SQL Server 指定的数据库具有更高的版本
在做NLB部署时遇到这么个问题,CRMAPP1安装的CRM版本是6.1已经打了SP1补丁,而在CRMAPP2上的CRM安装包是6.0版本,在选择连接现有部署后,最后一步检测就出了问题,如下图所示. 看 ...
- Ubuntu文件中文乱码
如图,该文件在gedit打开中文显示正常 在命令行中用vim打开,显示内容如下: 使用命令进行编码转换 iconv -f gbk -t utf8 ./SogouQ.mini > ./sougou ...
- java设计模式---调停者模式
中介者模式(Mediator):用一个中介对象来封装一系列的对象交互.中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互. 通用类图: 举例:在一个公司里面 ...