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新建空白文档执行插入→文件打开插入文件对框定位需要解除保护文档 ...
随机推荐
- git提交代码到github
前言:转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/52117504 git提交代码到github 命令汇总: git init git ...
- 所谓 Spinner 组件
Spinner组件在平常的开发过程中应该算是比较常用的隶属于Input Control的android控件了,所以我们很有必要掌握这一个知识点,下面我就来谈一谈我对这个组件的一些认识. 是什么? 下拉 ...
- Android的SeekBar和RateBar的使用-android学习之旅(三十二)
SeekBar简介 SeekBar允许用户拖动,进行调节经常用于音量调节等方面. android:thumb设置drawable对象来表示拖动的物体. setOnSeekBarChangeListen ...
- USB有时adb shell连不上设备
USB有时adb shell连不上设备 图1 下面汇总有效的解决方法 1. 重启 2. 卸载和重新装载驱动 图2 3.
- java方法重写和super关键字
//java方法重写和super关键字 //在继承中,其实就是子类定义了和父类同名的方法 //就是方法,属性都是相通的 //重写限制: //被子类重写的方法不能拥有比父类方法更加严格的权限 //sup ...
- pig的udf编写
http://www.cnblogs.com/anny-1980/p/3673569.html http://blog.csdn.net/ruishenh/article/details/120480 ...
- HTML5 预加载
原文地址: HTML5 Link Prefetching 原文日期: 2010年07月07日 翻译日期: 2013年08月13日 浏览器厂商和开发者之间共同努力的一个方向就是让网站更快.现在已有很多广 ...
- Uva - 810 - A Dicey Problem
根据状态进行bfs,手动打表维护骰子滚动. AC代码: #include <iostream> #include <cstdio> #include <cstdlib&g ...
- (NO.00003)iOS游戏简单的机器人投射游戏成形记(十二)
回到Xcode,新建Level1类,继承于CCNode. 打开Level1.m在初始化方法中添加如下方法: -(void)didLoadFromCCB{ [self initBasket]; [sel ...
- 在python中的使用Libsvm
http://blog.csdn.net/pipisorry/article/details/38964135 LIBSVM是台湾大学林智仁(LinChih-Jen)教授等开发设计的一个简单.易于使用 ...