C# 加密、解密PDF文档(基于Spire.Cloud.PDF.SDK)
Spire.Cloud.PDF.SDK提供了接口PdfSecurityApi可用于加密、解密PDF文档。本文将通过C#代码演示具体加密及解密方法。
使用工具:
Spire.Cloud.PDF.SDK
Visual Studio
必要步骤:
步骤一:dll文件获取及导入
方法1. 通过官网本地下载SDK文件包。(须在e-iceblue中国官网在线编辑板块中注册账号并登录)
下载后,解压文件,将Spire.Cloud.Pdf.Sdk.dll文件及其他三个dll添加引用至VS程序;
方法2. 在程序中通过Nuget搜索下载,直接导入所有dll。
导入效果如下如所示:
步骤二:App ID及Key获取。在“我的应用”板块中创建应用以获得App ID及App Key。
步骤三:源文档上传。在“文档管理”板块,上传源文档。这里可以建文件夹,将文档存放在文件夹下。不建文件夹时,源文档及结果文档直接保存在根目录。本文示例中,建了两个文件夹,分别用于存放源文档及结果文档。(云平台提供免费1 万次调用次数和 2G 文档内存)
C# 代码示例
【示例1】加密PDF文档
usingSystem;usingSpire.Cloud.Pdf.Sdk.Client;usingSpire.Cloud.Pdf.Sdk.Api;usingSystem.IO;usingSystem.Collections.Generic;namespaceEncryt{classProgram{staticStringappID="AppID";staticStringappKey="AppKey";staticvoidMain(string[]args){//配置账号信息ConfigurationpdfConfiguration=newConfiguration(appID,appKey);PdfSecurityApipdfSecurityApi=newPdfSecurityApi(pdfConfiguration);stringname="sample.pdf";//源文档stringoutPath="pdfsecurity/Encrypt.pdf";//结果文档路径(将结果文档存放在pdfsecurity文件夹下)stringuserPassword=ToBase64String("123");//用户密码stringownerPassword=ToBase64String("321");//所有者密码stringkeySize="Key40Bit";//设置keySize(如果不需要设置,可设置为null)List<string>permissionsFlags=newList<string>();//设置permissionsFlags(如果不需要设置,可设置为null)permissionsFlags.Add("Print");stringfolder="input";//源文档所在文件夹stringpassword=null;//源文档密码//调用方法加密文档pdfSecurityApi.EncryptDocumentInStorage(name,outPath,userPassword,ownerPassword,keySize,permissionsFlags,folder,password);}privatestaticstringToBase64String(stringvalue){byte[]b=System.Text.Encoding.UTF8.GetBytes(value);stringbase64String=Convert.ToBase64String(b);base64String=base64String.Replace("+","%2B");returnbase64String;}}}
生成的文档打开时,需要输入密码。
文档加密结果:
【示例2】解密PDF文档
这里以上文中生成的加密PDF为测试文档。
usingSystem;usingSpire.Cloud.Pdf.Sdk.Client;usingSpire.Cloud.Pdf.Sdk.Api;namespaceDecrypt{classProgram{staticStringappID="AppID";staticStringappKey="AppKey";staticvoidMain(string[]args){//配置账号信息ConfigurationpdfConfiguration=newConfiguration(appID,appKey);PdfSecurityApipdfSecurityApi=newPdfSecurityApi(pdfConfiguration);stringname="Encrypt.pdf";//源文档stringoutPath="pdfsecurity/Decrypt.pdf";//结果文档路径(pdfsecurity为结果文档所在文件夹)stringpassword=ToBase64String("321");//文档密码(这里需要使用ownerpassword)stringfolder="pdfsecurity";//源文档所在文件夹//调用方法解密文档pdfSecurityApi.DecryptDocumentInStorage(name,outPath,password,folder);}privatestaticstringToBase64String(stringvalue){byte[]b=System.Text.Encoding.UTF8.GetBytes(value);stringbase64String=Convert.ToBase64String(b);base64String=base64String.Replace("+","%2B");returnbase64String;}}}
生成的文档将不再有密码保护。
(本文完)
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。