Spire.PDF支持两种口令保护方式,文档打开口令和许可口令。文档打开口令只能用于打开文档,而许可口令则是级别更高的口令,它既可以打开文档,也可以用来编辑和修改文档的权限。我们可以对一个文档设置打开口令或许可口令中的一种,也可以二者都设置。Spire.PDF 3.9.241 对口令保护方法做了调整。如果您使用的是3.9.241以前的老版本,请参考 C# PDF 文档保护与取消保护。如果使用的是V3.9.241 以后的新版本,请使用该文中提供的新方法。该示例将详细介绍如何使用密码方式给PDF文档加密和解密。
- 加密 PDF
- 解密 PDF
加密PDF
Spire.PDF 提供 pdf.Security.Encrypt(string openPassword, string permissionPassword, PdfPermissionsFlags permissions, PdfEncryptionKeySize keySize) 方法来设置打开口令,许可口令,设置文档加密级别和设置文档权限。
//加载PDF
PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile("Sample.pdf");
//保护PDF文档
pdf.Security.Encrypt("open", "permission", PdfPermissionsFlags.Print|PdfPermissionsFlags.CopyContent, PdfEncryptionKeySize.Key128Bit);
//保存文档
pdf.SaveToFile("Encrypted.pdf", FileFormat.PDF);
解密PDF
首先需要使用密码用PdfDocument.LoadFromFile (string filename, string password) 方法加载一个被保护的PDF文档 (打开口令和许可口令均可)。 然后用pdf.Security.Encrypt(string openPassword, string permissionPassword, PdfPermissionsFlags permissions, PdfEncryptionKeySize keySize, string originalPermissionPassword) 方法将打开口令,许可口令设置为空达到解密效果。
//使用密码加载一个加密的PDF文档
PdfDocument pdf = new PdfDocument();
pdf.LoadFromFile("Encrypted.pdf", "open");
//将打开口令和许可口令设置为空,同时设置文档权限,加密级别,输入原始许可口令
pdf.Security.Encrypt(string.Empty, string.Empty, PdfPermissionsFlags.Default, PdfEncryptionKeySize.Key128Bit, "permission");
//保存文档
pdf.SaveToFile("Decrypt.pdf", FileFormat.PDF);