C# 加密、解密PDF文档(基于Spire.Cloud.SDK for .NET)
Spire.Cloud.SDK for .NET提供了接口PdfSecurityApi可用于加密、解密PDF文档。本文将通过C#代码演示具体加密及解密方法。
使用工具:
- Spire.Cloud.SDK for .NET
- Visual Studio
必要步骤:
步骤一:dll文件获取及导入。在程序中通过Nuget搜索下载,直接导入所有dll。
导入效果如下如所示:

步骤二:App ID及Key获取。在“我的应用”板块中创建应用以获得App ID及App Key。

步骤三:源文档上传。在“文档管理”板块,上传源文档。这里可以建文件夹,将文档存放在文件夹下。不建文件夹时,源文档及结果文档直接保存在根目录。本文示例中,建了两个文件夹,分别用于存放源文档及结果文档。(云平台提供免费1 万次调用次数和 2G 文档内存)

C# 代码示例
【示例1】加密PDF文档
using System;
using Spire.Cloud.Pdf.Sdk.Client;
using Spire.Cloud.Pdf.Sdk.Api;
using System.IO;
using System.Collections.Generic; namespace Encryt
{
class Program
{
//配置账号信息
static String appId = "App ID";
static String appKey = "App Key";
static String baseUrl = "https://api.e-iceblue.cn";
static Configuration PdfConfiguration = new Configuration(appId, appKey, baseUrl);
static PdfSecurityApi PdfSecurityApi = new PdfSecurityApi(PdfConfiguration);
static void Main(string[] args)
{
string name = "sample.pdf";//源文档
string destFilePath = "pdfsecurity/Encrypt.pdf";//结果文档路径(将结果文档存放在pdfsecurity文件夹下)
string userPassword = "";//设置用户密码
string ownerPassword = "";//设置所有者密码
string keySize = "Key40Bit";//设置keySize(如果不需要设置,可设置为null)
List<string> permissionsFlags = new List<string>();//设置permissionsFlags(如果不需要设置,可设置为null)
permissionsFlags.Add("Print");
string folder = "input";//源文档所在文件夹
string password = null;//源文档密码
string storage = null; //调用方法加密文档
PdfSecurityApi.EncryptDocumentInStorage(name,destFilePath,userPassword,ownerPassword,keySize,permissionsFlags,folder,storage,password);
}
}
}
生成的文档打开时,需要输入密码。
文档加密结果:

【示例2】解密PDF文档
这里以上文中生成的加密PDF为测试文档。
using System;
using Spire.Cloud.Pdf.Sdk.Client;
using Spire.Cloud.Pdf.Sdk.Api; namespace Decrypt
{
class Program
{
//配置账号信息
static String appId = "App ID";
static String appKey = "App Key";
static String baseUrl = "https://api.e-iceblue.cn";
static Configuration PdfConfiguration = new Configuration(appId, appKey, baseUrl); static PdfSecurityApi PdfSecurityApi = new PdfSecurityApi(PdfConfiguration);
static void Main(string[] args)
{
string name = "Encrypt.pdf";//源文档
string destFilePath = "pdfsecurity/Decrypt.pdf";//结果文档路径(pdfsecurity为结果文档所在文件夹)
string password = "";//文档密码(这里需要使用的是ownerpassword)
string folder = "pdfsecurity";//源文档所在文件夹
string storage = null; //调用方法解密文档
PdfSecurityApi.DecryptDocumentInStorage(name,destFilePath,password,folder,storage);
}
}
}
生成的文档将不再有密码保护。
(完)
C# 加密、解密PDF文档(基于Spire.Cloud.SDK for .NET)的更多相关文章
- Java 加密、解密PDF文档
本篇文章将介绍通过Java编程来设置PDF文档保护的方法.我们可以设置仅用于查阅文档的密码,即该通过该密码打开文档仅用于文档阅读,无法编辑:也可以设置文档编辑权限的密码,即通过该密码打开文档时,文档为 ...
- java 加密解密WORD文档
对一些重要文档,我们为保证其文档内容不被泄露,常需要对文件进行加密,查看文件时,需要正确输入密码才能打开文件.下面介绍了一种比较简单的方法给Word文件添加密码保护以及如何给已加密的Word文件取消密 ...
- Java 设置、删除、获取Word文档背景(基于Spire.Cloud.SDK for Java)
本文介绍使用Spire.Cloud.SDK for Java 提供的BackgroundApi接口来操作Word文档背景的方法,可设置背景,包括设置颜色背景setBackgroundColor().图 ...
- Java 将PDF/XPS转为Word/html /SVG/PS/PCL/PNG、PDF和XPS互转(基于Spire.Cloud.SDK for Java)
Spire.Cloud.SDK for Java提供了接口PdfConvertApi通过convert()方法将PDF文档以及XPS文档转为指定文档格式,如转PDF为Word(支持Docx.Doc). ...
- Java 添加、下载、读取PDF附件信息(基于Spire.Cloud.SDK for Java)
Spire.Cloud.SDK for Java提供了PdfAttachmentsApi接口添加附件addAttachment().下载附件downloadAttachment().获取附件信息get ...
- Java 设置Excel单元格格式—基于Spire.Cloud.SDK for Java
本文介绍使用Spire.Cloud.SDK for Java来设置Excel单元格格式,包括字体.字号.单元格背景.字体下滑线.字体加粗.字体倾斜.字体颜色.单元格对齐方式.单元格边框等 一.下载SD ...
- Java 添加、删除、替换、格式化Word中的文本(基于Spire.Cloud.SDK for Java)
Spire.Cloud.SDK for Java提供了TextRangesApi接口可通过addTextRange()添加文本.deleteTextRange()删除文本.updateTextRang ...
- AD RMS Bulk Protection Tool 批量加密解密office文档
1.Active Directory Rights Management Services Bulk Protection Tool http://www.microsoft.com/zh-cn/d ...
- C#, VB.NET如何加密PDF文档
在日常工作中,人们通常通过加密PDF文档的方式来保护PDF文档.不管是公司还是个人,使用PDF加密术来设置一些权限是必不可少的.为了使PDF文档既可读又不能被未授权的用户所更改,一份PDF文档往往需要 ...
随机推荐
- c# 优化代码的一些规则——优先隐式类型[一]
前言 说到底就是优先使用var,这个关键字,在c# 3.0中出现了. 首先要确认几点,一个就是var 是静态变量,而不是动态变量,也就是说使用var 你是不必去担心性能问题得, 百度百科: 1)静态存 ...
- Istio DestinationRule 目标规则
概念及示例 与VirtualService一样,DestinationRule也是 Istio 流量路由功能的关键部分.您可以将虚拟服务视为将流量如何路由到给定目标地址,然后使用目标规则来配置该目标的 ...
- 前端Json对象与Json字符串互转(4种转换方式)
1>jQuery插件支持的转换方式: $.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象 2>浏 ...
- 【Leetcode】287. 寻找重复数(数组模拟链表的快慢指针法)
寻找重复数 根据题意,数组中的数字都在1~n之间,所以数字的范围是小于数组的范围的,数组的元素可以和数组的索引相联系. 例如:nums[0] = 1 即可以将nums[0]作为索引 通过nums[0] ...
- Spring_使用JdbcTemplate和JdbcDaoSupport
1.JdbcTemplate 简化 JDBC 模板查询 ①每次使用都创建一个 JdbcTemplate 的新实例, 这种做法效率很低下.②JdbcTemplate 类被设计成为线程安全的, 所以可以再 ...
- DQN(Deep Q-learning)入门教程(五)之DQN介绍
简介 DQN--Deep Q-learning.在上一篇博客DQN(Deep Q-learning)入门教程(四)之Q-learning Play Flappy Bird 中,我们使用Q-Table来 ...
- eclipse中生成文档注释--javadoc的使用
1.针对于单一的JAVA文件,在终端窗口中,使用 javadoc 文件名.java 即可生成文档注释: 2.在eclipse中生成文档注释: ①单击eclipse菜单栏中的[Project]菜单,该菜 ...
- markdown的简易使用方法
markdown 的使用方法 标题的使用: 以#号开头,后面跟上空格键. 一级标题用一个#号, 二级标题用两个##.以此类推,总共六级. 段落的编写 至少使用一个空行来分割段落 :即按两次enter键 ...
- JAVASE(十一) 高级类特性: abstract 、模板模式、interface、内部类、枚举、注解
个人博客网:https://wushaopei.github.io/ (你想要这里多有) 1.关键字 abstract 1.1.abstract可以修饰:类,方法 1.2.abstract修饰方 ...
- 使用Mac的Remote Desktop Manager连接ubuntu16.04 & Win10的远程桌面
疫情严重,公司实行远程办公.自己只有mac电脑,苦于3个系统间跨平台建立远程桌面. 今天,终于尝试成功!特来记录,以防别人踩坑! Mac远程软件安装 Remote Desktop Manager软件非 ...