C# 对PDF文档加密、解密(基于Spire.Cloud.SDK for .NET)
作者:E-iceblue 发布时间:2021-11-23 05:37:26
标签:c#,pdf,加密,解密
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 = "123";//设置用户密码
string ownerPassword = "321";//设置所有者密码
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 = "321";//文档密码(这里需要使用的是ownerpassword)
string folder = "pdfsecurity";//源文档所在文件夹
string storage = null;
//调用方法解密文档
PdfSecurityApi.DecryptDocumentInStorage(name,destFilePath,password,folder,storage);
}
}
}
生成的文档将不再有密码保护。
来源:https://www.cnblogs.com/Yesi/p/13156354.html


猜你喜欢
- 本文实例为大家分享了C++实现哈夫曼树的编码解码,供大家参考,具体内容如下代码:#pragma once#include<iostre
- Spring Web MVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,
- JPA Specification常用查询+排序1.第一步:继承父类public interface TblCarton2RCardLogR
- 概述java移位符主要包括3种:运算符名称>>左移运算符<<有符号右移运算符<<<无符号右移运算符
- 目录背景实体类示例一示例二背景以前常用的排序方式是通过实现Comparator接口来进行排序,写法相对来说比较复杂,使用Comparator
- 经过多次尝试之后,终于找到了开机自动启动App的解决方法开机后会停留在锁屏页面,且短时间内如果没有进行解锁操作,屏幕会进入休眠状态,所以启动
- // Create a handler for a click event.button1.Click += delegate(System
- 本文研究的主要是Collections.shuffle()方法的相关内容,下面看看具体内容。Java.util.Collections类下有
- GraalVM安装GraalVM安装安装请前往GraalVM官网 下载 GraalVM Community 22.3,注意当前支持的Spri
- 前言RedisTemplate是Spring对于Redis的封装。如上图所示,RedisTemplate中定义了对5种数据结构操作。redi
- 数据存储与访问常用方式:文件SharedPreferences(偏好参数设置)SQLite数据库内容提供者(Content provider
- 先来看看下面List<T>泛型集合的排序例子:using System;using System.Collections.Gen
- 前言菱形继承是多重继承中跑不掉的,Java拿掉了多重继承,辅之以接口。C++中虽然没有明确说明接口这种东西,但是只有纯虚函数的类可以看作Ja
- 难点是泛型如何转换一、arrayList<Map<String, Object>>转化json字符串,存入redis
- 学习完数组就能用C语言写出的简单小游戏:编译器使用的为VS2013代码分为三个部分1、头文件 game.h2、源文件 game.c 用来存放
- 一、准备工作mybatis-plus作为mybatis的增强工具,它的出现极大的简化了开发中的数据库操作,但是长久以来,它的联表查询能力一直
- 其实就只有一条sql语句<select id = "search" resultType = "mate
- 这篇文章主要介绍了java 对象参数去空格方式代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋
- 本文实例为大家分享了Java实现串口通信的具体代码,供大家参考,具体内容如下1.介绍使用Java实现的串口通信程序,支持十六进制数据的发送与
- 本文实例为大家分享了Android实现指针刻度转盘的具体代码,供大家参考,具体内容如下一. 先上个效果图,实现如图所示刻度转盘和2个文本的绘