添加附件 PDF 文件嵌入 API
PDF4me 添加附件 PDF 允许您添加文件附件 PDF 文档,创建包含嵌入式文件的完整文档包。这 API 服务流程 PDF 文档和各种附件文件类型,直接嵌入到 PDFs。 这 API 接收源 PDF 通过文件和附件文件 REST API 利用电话 Base64 用于安全文件传输的编码。该解决方案支持多种文件类型和批量附件处理,是文档管理系统、企业工作流程和需要可靠传输的业务应用程序的理想之选。 PDF 附件功能。
验证您的身份 API 要求
要访问 PDF4me REST API每个请求都必须包含正确的身份验证凭据。身份验证可确保通信安全,并验证您作为授权用户的身份。 REST API。
主要特点
- 多种文件类型支持多种附件文件格式,包括文本、图像和文档。
- 批量附件:向单个文件添加多个附件 PDF 文档
- Base64 编码:使用安全文件内容传输 Base64 编码
- 文件保存保持原状 PDF 添加附件时的结构
- 灵活命名自定义附件名称,以便更好地组织
- 专业包装创建包含嵌入式资源的综合文档包
REST API 端点
这 PDF4me REST API 使用标准 HTTP 与资源交互的方法。所有附件添加操作均通过单个端点执行:
- 方法: POST
- 终点:
/api/v2/AddAttachmentToPdf
REST API 参数
添加附件的完整参数列表 PDF REST API参数按类别组织,以便更好地理解和实施。
重要的: 标有星号 (*) 的参数为必填项,必须提供。 API 正常运作。
必需参数
| 范围 | 类型 | 描述 | 例子 |
|---|---|---|---|
| 文档名称* | String | 输出 PDF 文件名带有 .pdf 扩展名 | output.pdf |
| 文档内容* | Base64 | 输入的内容 PDF 文件编码为 Base64 | JVBERi... |
| 附件* | Array | 要嵌入的附件对象数组 PDF每个对象必须包含 docName (字符串)和 docContent (base64字符串) | 请看下面的示例。 |
附件对象结构
每件物品 attachments 数组必须是一个具有以下结构的对象:
| 范围 | 类型 | 描述 | 例子 |
|---|---|---|---|
| 文档名称 | String | 附件文件名(带扩展名,例如 .txt、.pdf、.jpg 等) | attachment.txt |
| 文档内容 | Base64 | 附件文件的内容以编码形式呈现 Base64 | RXhhbXBsZSBvZiBhdHRhY2htZW50IGZpbGUuIA== |
可选参数
| 范围 | 类型 | 描述 | 例子 |
|---|---|---|---|
| 异步 | Boolean | 启用异步处理。 true, 这 API 返回 202 状态并提供轮询 URL 在 Location 标题 | true |
输出
这 PDF4me 添加附件 PDF REST API 根据处理模式的不同,会返回不同的响应。 API 返回 PDF 作为一个 Base64-编码字符串 JSON 格式不是二进制数据。
- Success Response
- Asynchronous Processing
- Error Responses
- Response Format Details
同步处理(默认)
什么时候 async 未设置或已设置为 false, 这 API 立即处理请求:
状态码: 200 OK
内容类型: application/json
回复正文:
{
"docName": "output.pdf",
"docContent": "JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgMiAwIFIKPj4KZW5kb2JqCjIgMCBvYmoKPDwKL1R5cGUgL1BhZ2VzCi9LaWRzIFszIDAgUl0KL0NvdW50IDEKPD4KZW5kb2JqCjMgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL1BhcmVudCAyIDAgUgovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovUmVzb3VyY2VzIDw8Ci9Gb250IDw8Ci9GMSA0IDAgUgo+Pgo+PgovQ29udGVudHMgNSAwIFIKPj4KZW5kb2JqCjQgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9CYXNlRm9udCAvSGVsdmV0aWNhCj4+CmVuZG9iago1IDAgb2JqCjw8Ci9MZW5ndGggNDQKPj4Kc3RyZWFtCkJUCi9GMSAxMiBUZgoxMDAgNzAwIFRkCihIZWxsbyBXb3JsZCkgVGoKRVQKZW5kc3RyZWFtCmVuZG9iagp4cmVmCjAgNgowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMDkgMDAwMDAgbiAKMDAwMDAwMDA1NCAwMDAwMCBuIAowMDAwMDAwMTAxIDAwMDAwIG4gCjAwMDAwMDAxNzAgMDAwMDAgbiAKMDAwMDAwMDI0NCAwMDAwMCBuIAp0cmFpbGVyCjw8Ci9TaXplIDYKL1Jvb3QgMSAwIFIKPj4Kc3RhcnR4cmVmCjM0MQolJUVPRg=="
}
回复字段:
- 文档名称 (字符串):输出 PDF 文件名
- 文档内容 (字符串): PDF 包含嵌入式附件的文件,编码为 Base64 细绳
使用方法:
- 提取
docContent来自该领域的 JSON 回复 - 解码 Base64 获取二进制文件的字符串 PDF 数据
- 保存或处理 PDF 根据需要归档
示例(JavaScript):
const response = await fetch(url, options);
const data = await response.json();
const pdfBytes = atob(data.docContent); // Decode Base64
// Save or process pdfBytes
异步处理
什么时候 async: true 已设定, API 异步处理请求:
状态码: 202 已接受
响应头:
Location: https://api.pdf4me.com/api/v2/AddAttachmentToPdf/poll/12345-abcde-67890
投票过程:
- 提取
Location来自 202 响应的标头 - 民意调查 URL 使用 GET 请求
- 继续轮询,直到收到 200 OK 地位
- 最终回复包含相同的内容。 JSON 格式
docName和docContent(Base64)
轮询示例:
// Initial request returns 202 with Location header
const response = await fetch(url, options);
const location = response.headers.get('Location');
// Poll until complete
while (true) {
const pollResponse = await fetch(location, { headers: { 'Authorization': 'Basic ' + apiKey } });
if (pollResponse.status === 200) {
const data = await pollResponse.json();
// Process data.docContent (Base64 PDF)
break;
}
await new Promise(resolve => setTimeout(resolve, 2000)); // Wait 2 seconds
}
错误响应
这 API 退货标准 HTTP 错误代码及错误详情:
- 无效的请求参数
- 缺少必填字段
文档名称,文档内容,附件) - 无效的 Base64 编码
文档内容或附件文档内容 - 无效的附件对象结构
- 无效或缺失 API 钥匙
- API 钥匙未正确 Base64 编码 Authorization 标题
- 丢失的
授权方式:基本标题
- 服务器端处理错误
- PDF 处理失败
- 附件嵌入失败
错误响应格式:
{
"error": "Error message describing what went wrong"
}
回复格式详情
重要的: 这 API 总是返回 JSON绝非二元 PDF 直接传输数据。
响应结构:
{
"docName": "string", // Output PDF filename
"docContent": "string" // Base64-encoded PDF content
}
内容类型标头:
- 成功:
application/json - 这 PDF 嵌入为 Base64 字符串内部 JSON 回复
为什么 Base64?
- JSON-二进制数据的安全编码
- 易于传输 HTTP
- 与所有编程语言兼容
- 可以直接嵌入 JSON 不回避问题
解码 Base64 到 PDF:
JavaScript/Node.js:
const base64 = response.docContent;
const binary = atob(base64); // Browser
// OR
const binary = Buffer.from(base64, 'base64').toString('binary'); // Node.js
Python:
import base64
pdf_bytes = base64.b64decode(response['docContent'])
with open('output.pdf', 'wb') as f:
f.write(pdf_bytes)
C#:
byte[] pdfBytes = Convert.FromBase64String(response.docContent);
File.WriteAllBytes("output.pdf", pdfBytes);
请求示例
标题
Content-Type: application/json
Authorization: Basic YOUR_BASE64_ENCODED_API_KEY
笔记:
- 获得你的 API 钥匙 PDF4me 仪表板
- 这 API 关键必须是 Base64 编码后以“Basic”为前缀 Authorization 标题
- 例如:如果你的 API 关键是
abc123将其编码为 Base64 并使用Authorization: Basic YWJjMTIz
有效载荷
单个附件:
{
"docName": "output.pdf",
"docContent": "JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgMiAwIFIKPj4KZW5kb2JqCjIgMCBvYmoKPDwKL1R5cGUgL1BhZ2VzCi9LaWRzIFszIDAgUl0KL0NvdW50IDEKPD4KZW5kb2JqCjMgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL1BhcmVudCAyIDAgUgovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovUmVzb3VyY2VzIDw8Ci9Gb250IDw8Ci9GMSA0IDAgUgo+Pgo+PgovQ29udGVudHMgNSAwIFIKPj4KZW5kb2JqCjQgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9CYXNlRm9udCAvSGVsdmV0aWNhCj4+CmVuZG9iago1IDAgb2JqCjw8Ci9MZW5ndGggNDQKPj4Kc3RyZWFtCkJUCi9GMSAxMiBUZgoxMDAgNzAwIFRkCihIZWxsbyBXb3JsZCkgVGoKRVQKZW5kc3RyZWFtCmVuZG9iagp4cmVmCjAgNgowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMDkgMDAwMDAgbiAKMDAwMDAwMDA1NCAwMDAwMCBuIAowMDAwMDAwMTAxIDAwMDAwIG4gCjAwMDAwMDAxNzAgMDAwMDAgbiAKMDAwMDAwMDI0NCAwMDAwMCBuIAp0cmFpbGVyCjw8Ci9TaXplIDYKL1Jvb3QgMSAwIFIKPj4Kc3RhcnR4cmVmCjM0MQolJUVPRg==",
"attachments": [
{
"docName": "output.txt",
"docContent": "RXhhbXBsZSBvZiBhdHRhY2htZW50IGZpbGUuIA=="
}
]
}
多个附件:
{
"docName": "output.pdf",
"docContent": "JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgMiAwIFIKPj4KZW5kb2JqCjIgMCBvYmoKPDwKL1R5cGUgL1BhZ2VzCi9LaWRzIFszIDAgUl0KL0NvdW50IDEKPD4KZW5kb2JqCjMgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL1BhcmVudCAyIDAgUgovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovUmVzb3VyY2VzIDw8Ci9Gb250IDw8Ci9GMSA0IDAgUgo+Pgo+PgovQ29udGVudHMgNSAwIFIKPj4KZW5kb2JqCjQgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9CYXNlRm9udCAvSGVsdmV0aWNhCj4+CmVuZG9iago1IDAgb2JqCjw8Ci9MZW5ndGggNDQKPj4Kc3RyZWFtCkJUCi9GMSAxMiBUZgoxMDAgNzAwIFRkCihIZWxsbyBXb3JsZCkgVGoKRVQKZW5kc3RyZWFtCmVuZG9iagp4cmVmCjAgNgowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMDkgMDAwMDAgbiAKMDAwMDAwMDA1NCAwMDAwMCBuIAowMDAwMDAwMTAxIDAwMDAwIG4gCjAwMDAwMDAxNzAgMDAwMDAgbiAKMDAwMDAwMDI0NCAwMDAwMCBuIAp0cmFpbGVyCjw8Ci9TaXplIDYKL1Jvb3QgMSAwIFIKPj4Kc3RhcnR4cmVmCjM0MQolJUVPRg==",
"attachments": [
{
"docName": "file1.txt",
"docContent": "RXhhbXBsZSBvZiBhdHRhY2htZW50IGZpbGUuIA=="
},
{
"docName": "file2.pdf",
"docContent": "JVBERi0xLjQKJeLjz9MK..."
}
],
"async": true
}
代码示例
这 PDF4me 添加附件 PDF REST API 提供多种编程语言的代码示例。请选择最适合您开发环境的语言:
- C#
- Java
- JavaScript
- Python
- Salesforce
- n8n
- Google Script
- AWS Lambda
PDF 附件功能
附件处理
- 多种文件类型支持多种附件格式,包括文本文件(.txt、.csv、.log)、文档(.pdf、.doc、.docx、.xls、.xlsx)、图像(.jpg、.jpeg、.png、.gif)、压缩文件(.zip、.rar)和其他文件类型。
- 批量处理:向单个文件添加多个附件 PDF 通过提供附件对象数组,一次性完成文档编写
- Base64 编码使用以下方式安全传输文件内容 Base64 编码
- 文件命名每个附件必须包含一个
docName具有适当的文件扩展名
文档增强
- PDF 保存保持原状 PDF 添加附件时的结构和内容
- 文件整理:通过以下方式自定义嵌入式附件的命名和组织:
docName场地 - 文件可移植性创建包含所有相关文件的独立文档包 PDF
- 专业包装生成用于分发的综合文档包
响应处理
- 同步处理默认情况下, API 同步处理请求并返回结果 PDF 带附件(状态 200)
- 异步处理: 放
async: true启用异步处理。 API 通过轮询返回 202 状态 URL 在 Location 标题 - 二元响应: 这 API 返回 PDF 成功后,文件将以二进制内容(application/pdf)的形式保存
行业应用案例及应用
- Legal & Professional Services
- Education & Research
- Business & Enterprise
- Technology & Development
法律及专业服务用例
- 法律文件包括证据文件、合同和证明文件
- 法庭文件将佐证文件附在法庭文件和法律文书中
- 客户文档将客户文件与辅助材料打包在一起
- 合规文件包括证书、许可证和监管文件
教育与研究应用案例
- 学术论文包括数据集、研究材料和补充信息
- 研究文档附上研究数据和补充材料
- 论文提交将论文与支持性文件和数据集打包
- 培训材料嵌入资源、练习和参考指南
商业及企业应用案例
- 商业报告请附上电子表格、图表和详细分析文件
- 项目交付成果将所有项目文件打包到一个 PDF 文档中
- 文件包创建包含辅助材料的完整文档包
- 公司文件:将辅助材料与公司文件一起提交
技术与开发应用案例
- 技术文档嵌入代码示例、配置文件和参考资料
- 软件文档请附上代码文件和技术规范
- API 文档包含代码示例和配置文件
- 开发者资源软件包开发者资源和参考资料