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新建空白文档执行插入→文件打开插入文件对框定位需要解除保护文档 ...
随机推荐
- 高通msm8994性能及温度监测脚本
[plain] view plain copystartTime=$(date +%Y-%m-%d-%H-%M-%S) pathName="/data/cpu_logs" fi ...
- SSH深度历险(五) 深入浅出-----IOC AND AOP
IOC就是Inversion of Control,控制反转.在Java开发中,IoC意味着将你设计好的类交给系统(容器)来控制实现,而不是在你的类内部控制.这称为控制反转. 本人理解:就是把原本你自 ...
- Ubuntu 15.10下Qt5的安装实战
写照篇博客的目的就是因为最近要使用Qt,但是由于本人的系统是Ubuntu的,而网上大部分的讲解全是基于Windows的,所以就花费一些时间总结了一下我的安装过程,当然也是也为了能帮助到更多的博友. 第 ...
- UNIX环境高级编程——进程间通信概念
进程间通信 --- IPC1. 进程间通信的目的a. 数据传输: 一个进程需要将他的数据发送给另一个进程b. 资源共享: 多个进程之间共享同样的资源c. 通知事件: 一个进程需要向另一个或一组进程发送 ...
- Cocos2D:塔防游戏制作之旅(十)
最终,draw方法显示这些路径点被放置在哪里,并且绘制出路径点之间的连线,它们仅仅被用作调试.一个成品游戏不应该绘制敌人的路径 - 那对于玩家来说太过容易了! 创建路径点的列表.打开HelloWorl ...
- Java:函数,类,数组之间的运用
在我的demoe类中,我实现了以下方法: 这个类在另外一个文件,demoe.java中 public class Demoe { //计算一个数字因子的个数 public static int get ...
- jsoup详解
json相信大家都用的多,jsonp我就一直没有机会用到,但也经常看到,只知道是"用来跨域的",一直不知道具体是个什么东西.今天总算搞明白了.下面一步步来搞清楚jsonp是个什么玩 ...
- (NO.00003)iOS游戏简单的机器人投射游戏成形记(八)
回到Xcode,新建ArmStatic类,继承于CCSprite.同样在初始化方法中打开用户交互. 下面添加触摸回调方法,touchBegan以及touchMoved方法和Arm基本相同,主要不同处在 ...
- Android学习笔记:对Android应用进行单元测试
第一步:在AndroidManifest.xml中加入如下两段代码: <manifest xmlns:android="http://schemas.android.com/ap ...
- Android必知必会--NinePatch图片制作
本文为CSDN学院免费课程<NinePatch图片制作从入门到精通>的笔记,建议新手先观看视频,整理此笔记是为了便于自己复习,有NinePatch基础的朋友可以直接观看第四部分.--[转载 ...