如何使用C#更改 PDF 文档的安全权限

当你使用密码保护 PDF 文档时,可以选择指定一组权限。这些权限用于决定用户可以如何与文件交互。例如,你可以为文档设置权限,禁止用户打印或执行剪切和粘贴操作。本文将演示如何使用 Spire.PDF for .NET 在 C# 和 VB.NET 中更改 PDF 文档的安全权限。

安装 Spire.PDF for .NET

首先,你需要将 Spire.PDF for .NET 包中包含的 DLL 文件添加到你的 .NET 项目引用中。你可以通过以下链接下载这些 DLL 文件,或者通过 NuGet 进行安装。

cs 复制代码
PM> Install-Package Spire.PDF

更改 PDF 文档的安全权限

以下是在 Spire.PDF for .NET 中为 PDF 文档应用安全权限的步骤:

  1. 创建一个 PdfDocument 对象。

  2. 使用 PdfDocument.LoadFromFile() 方法加载一个示例 PDF 文件。

  3. 指定打开密码和权限密码。可以将打开密码设置为空,这样生成的文档在打开时不需要密码。

  4. 使用 PdfDocument.Security.Encrypt() 方法,通过打开密码和权限密码对文档进行加密,并设置安全权限。该方法接受 PdfPermissionsFlags 枚举作为参数,该枚举定义了加密文档的用户访问权限。

  5. 使用 PdfDocument.SaveToFile() 方法将文档保存为另一个 PDF 文件。

具体示例代码如下:

cs 复制代码
using Spire.Pdf;
using Spire.Pdf.Security;

namespace ChangeSecurityPermission
{
    class Program
    {
        static void Main(string[] args)
        {
            //创建 PdfDocument 对象
            PdfDocument doc = new PdfDocument();

            //加载示例 PDF 文件
            doc.LoadFromFile(@"C:\Users\Administrator\Desktop\sample.pdf");

            //指定打开密码
            string openPsd = string.Empty;

            //指定权限密码
            string permissionPsd = "e-iceblue";

            //使用打开密码和权限密码加密文档,并设置权限和加密密钥大小
            doc.Security.Encrypt(openPsd, permissionPsd, PdfPermissionsFlags.FullQualityPrint, PdfEncryptionKeySize.Key128Bit);

            //将文档保存为另一个 PDF 文件
            doc.SaveToFile("SecurityPermissions.pdf");
        }
    }
}

效果如图所示:

申请临时许可证

如果你想去除生成文档中的评估信息,或解除功能限制,可以联系官方销售申请一个 30 天的试用许可证。

相关推荐
EasyGBS7 小时前
摄像头还在线,画面已经不能用了?国标GB28181视频平台EasyGBS视频质量诊断怎么用
服务器·安全·音视频
鲲穹AI种草8 小时前
PDF 编辑工具怎么选,多款工具实际使用情况整理
pdf·pdf 编辑工具
迪康Defender8 小时前
终端安全审批体系设计:如何平衡安全管控与业务连续性
运维·服务器·安全·运维开发·学习方法·业界资讯·远程工作
阿松爱学习9 小时前
【Unity开发】Aspose.PDF的使用
unity·pdf·c#
jimmyleeee9 小时前
大模型安全之四十五:从数据到输出----GenAI 版权、知识产权与伦理合规实战指南
人工智能·深度学习·安全
andrsted10 小时前
练题簿在线免费刷题:Word、PDF 导题与预览补全,把现成资料变成可练习题库
微信小程序·小程序·pdf·word·学习方法·刷题
AI行业应用研究10 小时前
会务信息载体的演进:纸质、PDF 与结构化数据源的分发成本与版本一致性
大数据·人工智能·安全·小程序·架构·pdf
Mr.朱鹏10 小时前
科技周报(第2026-10-10期):GPT6与安全
科技·安全·chatgpt
看着博客敲代码10 小时前
No space left on device:服务器被 SSH 爆破到日志写满的完整排查与止血
linux·运维·服务器·安全·ssh
king135987455010 小时前
EmbeddingGemma 2 270M 实测:Mac CPU、PDF/Word、256d 与 FTS5
macos·pdf·word