如何对 PDF 文件进行加密/添加密码及权限 in C
使用密码和特定权限保护 PDF 文件,对于防止敏感文档遭到未经授权的访问和篡改至关重要。 IronSecure Doc 提供的 [POST] 加密/添加密码与权限 API 提供了一种高效的方式,可在设置 PRINT、表单填写、批注等权限的同时,使用用户密码和所有者密码对 PDF 文件进行加密。 该 API 可确保 PDF 文件受到全面保护并受访问控制,因此非常适合用于法律、财务或个人文件。
如何对 PDF 文件进行加密/添加密码及权限
- 拉取并启动 IronSecureDoc Docker 镜像
- 使用 Swagger 测试 API
- 指定密码和权限的参数
- 执行 API 调用以应用更改
- 导出加密的 PDF 文档
拉取并启动 IronSecureDoc
如果您尚未运行 IronSecureDoc,请点击以下链接进行安装:
| 本地托管 | 部署到云端 |
|---|---|
[POST] 加密/添加密码与权限 API
[POST] 加密/添加密码与权限 API 允许您通过密码加密 PDF 文档,并为各种操作设置特定权限,从而为 PDF 文档添加安全层。 无论是授予读取权限、允许表单填写,还是禁用打印功能,该 API 都能让您全面掌控 PDF 文件的访问和修改方式。
Swagger
Swagger 提供了一个用户友好的界面,用于交互式地测试此 API。 您可以使用它发送测试请求并接收响应,而无需编写代码,这使其成为开发者的绝佳工具。
使用 Swagger 进行文本编辑的步骤
- 访问 Swagger UI:
如果您的 API 服务器在本地运行,您可以通过在网页浏览器中访问 http://localhost:8080/swagger/index.html 来调用 Swagger。

- 查找 API:
查找 [POST] /v1/document-services/pdfs/encrypt API,该接口对应"加密/添加密码与权限"功能。

- 输入参数:
提供 API 的所需参数。 您可以上传一个示例 PDF 文件并指定所需的权限。
- 上传 PDF 文件:
在请求正文中,将 PDF 文件作为 pdf_file 上传,并定义必要的权限,例如允许或限制打印、表单填写和内容提取。
- 执行请求:
设置完所有参数后,点击"执行"以发送请求。响应将返回具有指定安全设置的加密 PDF 文件。
- 检查生成的 PDF:
输入"password"以查看 PDF 内容。
理解输入参数
该 API 需要特定的参数来加密 PDF 并设置权限。 以下是必填和可选参数的详细说明:
必填参数
| 名称 | 数据类型 | 描述 |
|---|---|---|
pdf_file | application/pdf | 您要加密的 PDF 文件。 |
allow_extracting_content | boolean | 请注明是否允许内容提取。 |
allow_form_filling | boolean | 请注明是否允许表单自动填充。 |
allow_annotations | boolean | 请注明是否允许添加注释。 |
allow_printing | boolean | 请注明是否允许打印。 |
允许修改 | boolean | 请注明是否允许修改。 |
new_owner_password | string | PDF 文件的新所有者密码,该密码授予完全访问权限并可修改权限设置。 |
可选参数
| 名称 | 数据类型 | 描述 |
|---|---|---|
user_password | string | 当前用户密码(若 PDF 设置了用户密码以授予读取权限,则需输入此密码)。 |
owner_password | string | 当前所有者密码(若 PDF 设置了所有者密码,则需输入此密码以获取完全访问权限)。 |
new_user_password | string | 用于读取权限的新用户密码。 |
save_as_pdfa | boolean | 请将 PDF 保存为符合 PDF/A-3 标准的格式。 |
save_as_pdfua | boolean | 请将 PDF 保存为符合 PDF/UA 标准的格式。 |
作者 | string | 设置 PDF 元数据中的"作者"属性。 |
标题 | string | 设置 PDF 元数据的 Title 属性。 |
主题 | string | 设置 PDF 元数据的 Subject 属性。 |
API 集成:Python 示例
熟悉输入参数后,您可以使用 Python 或任何其他首选语言调用该 API。 以下是使用 Python 集成此 API 的示例。
import requests
# Endpoint URL
url = 'http://localhost:8080/v1/document-services/pdfs/encrypt'
# Headers with metadata information
headers = {
'accept': '*/*',
'author': 'Iron Software',
'title': 'ENCRYPTION DEMO 2024',
'subject': 'DEMO EXAMPLE'
}
# Files to be sent in the request
files = {
'pdf_file': ('sample.pdf', open('sample.pdf', 'rb'), 'application/pdf')
}
# Parameters for encryption and permissions
data = {
'allow_extracting_content': 'true',
'allow_form_filling': 'true',
'allow_annotations': 'false',
'allow_printing': 'false',
'allow_modifications': 'true',
'new_owner_password': 'password',
'new_user_password': 'password',
'save_as_pdfa': 'false',
'save_as_pdfua': 'false'
}
# Send POST request with parameters
response = requests.post(url, headers=headers, files=files, data=data)
# Save the encrypted PDF to file system
with open('sample_encrypted.pdf', 'wb') as f:
f.write(response.co/ntent)
print('PDF encrypted successfully.')import requests
# Endpoint URL
url = 'http://localhost:8080/v1/document-services/pdfs/encrypt'
# Headers with metadata information
headers = {
'accept': '*/*',
'author': 'Iron Software',
'title': 'ENCRYPTION DEMO 2024',
'subject': 'DEMO EXAMPLE'
}
# Files to be sent in the request
files = {
'pdf_file': ('sample.pdf', open('sample.pdf', 'rb'), 'application/pdf')
}
# Parameters for encryption and permissions
data = {
'allow_extracting_content': 'true',
'allow_form_filling': 'true',
'allow_annotations': 'false',
'allow_printing': 'false',
'allow_modifications': 'true',
'new_owner_password': 'password',
'new_user_password': 'password',
'save_as_pdfa': 'false',
'save_as_pdfua': 'false'
}
# Send POST request with parameters
response = requests.post(url, headers=headers, files=files, data=data)
# Save the encrypted PDF to file system
with open('sample_encrypted.pdf', 'wb') as f:
f.write(response.co/ntent)
print('PDF encrypted successfully.')步骤说明:
- 加载 PDF:从本地文件系统加载待加密的 PDF 文件。
- 设置加密参数:定义权限,例如允许打印、表单填写和内容提取,以及设置新密码。
- 调用 API:调用 [POST] 加密/添加密码与权限 API,并传入必要的参数。
- 保存结果:加密后的 PDF 将作为新文件保存。
该 PDF 文件已加密,如下所示。 输入"password"以查看 PDF 内容。
常见问题解答
如何加密 PDF 文件以保护敏感信息?
要加密 PDF 文件,您可以使用 IronSecureDoc API,它允许您设置用户密码和所有者密码。这些密码帮助控制访问和权限,例如打印和填写表单,确保文档的安全性。
使用 IronSecureDoc API 进行 PDF 加密涉及哪些步骤?
首先,拉取 IronSecureDoc 的 Docker 镜像,并根据您的托管环境进行设置。接下来,使用 API 指定加密参数,例如设置密码和权限,并执行 API 调用以生成安全的 PDF。
如何在不编写代码的情况下测试 IronSecureDoc API?
您可以使用 Swagger 测试 IronSecureDoc API。访问 Swagger UI,找到相关的 API 端点,输入必要的参数,并执行请求以查看响应并确保 API 正常工作。
什么是 PDF 安全中的用户和所有者密码?
在 PDF 安全中,用户密码允许读取文档,而所有者密码授予完整访问权限,包括更改权限。使用 IronSecureDoc,您可以设置这两种类型的密码以增强文档安全性。
我可以使用 IronSecureDoc 将 PDF 配置为符合 PDF/A 吗?
是的,IronSecureDoc API 包含允许您将加密的 PDF 保存为符合 PDF/A-3 的参数,这是一种电子文档长期保存的标准。
可以通过 IronSecureDoc API 控制哪些权限?
使用 IronSecureDoc API,您可以控制打印、填写表单、内容提取、注释和修改等权限,确保 PDF 的使用符合您的安全策略。
如何将 IronSecureDoc API 与 Python 应用程序集成?
要将 IronSecureDoc API 与 Python 集成,利用 requests 库发送 POST 请求到 API 端点。在您的请求中包含必要的头信息、参数和文件数据以加密和管理您的 PDF 文件。
使用 IronSecureDoc 加密 PDF 需要哪些必需参数?
基本参数包括要加密的 PDF 文件、用户和所有者密码,以及打印和编辑等操作的权限。这些参数确保文档的安全性和对其使用的控制。
在加密时,是否可能修改 PDF 的元数据?
是的,您可以使用 IronSecureDoc API 的可选参数修改 PDF 元数据,例如作者、标题和主题,允许您在加密过程中自定义文档信息。
运行 IronSecureDoc 本地实例的托管要求是什么?
IronSecureDoc 可以在 Windows、Mac 或 Linux 系统上本地托管。根据您的操作系统遵循特定的设置教程,以确保服务的正确安装和运行。





