符号 PDF 数字签名 API
PDF4me 符号 PDF 允许您添加签名图片 PDF 可控制文档的位置、大小和外观。 API 服务流程 PDF 文件并添加签名图像 Base64 用于安全传输的编码。 API 接收 PDF 通过内容和签名图像数据 REST API 通话。此解决方案非常适合文档认证、法律合规性、业务流程以及为文档添加视觉签名。
验证您的身份 API 要求
要访问 PDF4me REST API每个请求都必须包含正确的身份验证凭据。身份验证可确保通信安全,并验证您作为授权用户的身份。 REST API。
主要特点
- 图像签名支持添加自定义签名图片 PDF 可完全控制位置和尺寸的文档
- 灵活定位:以像素级精度控制水平和垂直对齐。
- 定制尺寸使用毫米和像素两种单位调整签名尺寸
- 高级格式设置设置不透明度、边距和背景选项,以获得专业外观。
- 页面定位将签名应用于特定页面或整个文档
- 打印控制配置签名仅在打印或屏幕上显示
- 专业成果创建可增强文档认证和安全性的签名
- 异步处理支持对长时间运行的操作进行轮询的异步处理
REST API 端点
这 PDF4me REST API 使用标准 HTTP 与资源交互的方法。全部 PDF 签名操作通过单个端点执行:
- 方法: POST
- 终点:
/api/v2/SignPdf
支持 PDF 签名功能
这 API 为各种 PDF 签名能力:
签名图像支持
- 常用格式支持 JPG, PNG以及其他标准图像格式
- Base64 编码:通过安全方式传输签名 Base64 编码
- 灵活尺寸提供毫米(10-200毫米)和像素(20-600像素)两种尺寸选项
- 质量保持:保持标志性图像质量 PDF 输出
定位和布局
- 水平对齐:左侧、中间和右侧定位选项
- 垂直对齐:顶部、中部和底部位置控制
- 利润控制:基于毫米(0-100毫米)和像素(0-300像素)的精确定位测量
- 灵活就业支持任何页面位置的精确测量
- 页面定位:应用于特定页面或整个文档(可选)
高级功能
- 不透明度控制:可调节透明度(0-100),实现低调或醒目的签名效果
- 后台模式可选择将签名置于内容之前或之后。
- 打印控制配置签名以在视图和打印中显示或仅打印。
- 专业形象:清晰可见的高质量签名渲染
REST API 参数
标志的完整参数列表 PDF REST API参数按类别组织,以便更好地理解和实施。
重要的: 标有星号 (*) 的参数为必填项,必须提供。 API 正常运作。
必需参数
| 范围 | 类型 | 描述 | 例子 |
|---|---|---|---|
| 文档名称* | String | 输出 PDF 文件名带有 .pdf 扩展名 | output.pdf |
| 文档内容* | Base64 | PDF 文件内容以编码形式 Base64 | JVBERi... |
| 图像文件* | Base64 | 签名图像文件内容编码 Base64 | iVBORw0KGgoAAAANSUhEUgAA... |
| 图像名称* | String | 签名图像文件名(带扩展名,例如 .jpg、.png) | signature.jpg |
| alignX* | String | 水平对齐方式: 左边, 中心, 或者 正确的 | Right |
| alignY* | String | 垂直对齐: 顶部, 中间, 或者 底部 | Bottom |
可选参数
| 范围 | 类型 | 描述 | 例子 |
|---|---|---|---|
| 页面 | String | 页面选项:“1”、“1,3,5”、“2-5”、“1,3,7-10”、“2-”。如果未指定,则适用于所有页面。 | 1-3 |
| 宽度(毫米) | String | 签名宽度(毫米)(10-200) | 50 |
| 身高(毫米) | String | 签名高度(毫米)(10-200) | 25 |
| 宽度(像素) | String | 签名宽度(像素)(20-600) | 142 |
| 高度(像素) | String | 签名高度(像素)(20-600) | 71 |
| marginXInMM | String | 水平边距(毫米)(0-100) | 20 |
| marginYInMM | String | 垂直边距(毫米)(0-100) | 20 |
| marginXInPx | String | 水平边距(像素,0-300) | 57 |
| marginYInPx | String | 垂直边距(像素,0-300) | 57 |
| 不透明度 | String | 不透明度(0-100):0=完全不可见,100=完全不透明 | 100 |
| 仅在印刷版中显示 | Boolean | 显示签名并打印(是)或仅打印(否) | true |
| 是背景 | Boolean | 将签名置于背景(真)或前景(假) | false |
| 异步 | 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
Content-Type: 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 Accepted
响应头:
Location: https://api.pdf4me.com/api/v2/SignPdf/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 错误代码及错误详情:
- 无效的请求参数
- 缺少必填字段
文档内容,文档名称,图像文件,图像名称,alignX,alignY) - 无效的 Base64 编码
文档内容或者图像文件 - 无效的对齐值(alignX 必须为“左”、“居中”、“右”;alignY 必须为“上”、“居中”、“下”)。
- 尺寸值无效(宽度/高度必须在指定范围内)
- 不透明度值无效(必须介于 0-100 之间)
- 无效或缺失 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
}
Content-Type 标题:
- 成功:
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==",
"imageFile": "iVBORw0KGgoAAAANSUhEUgAA...",
"imageName": "signature.jpg",
"alignX": "Right",
"alignY": "Bottom"
}
高级示例(包含所有可选字段):
{
"docName": "output.pdf",
"docContent": "JVBERi0xLjQKJeLjz9MKMSAwIG9iago8PAovVHlwZSAvQ2F0YWxvZwovUGFnZXMgMiAwIFIKPj4KZW5kb2JqCjIgMCBvYmoKPDwKL1R5cGUgL1BhZ2VzCi9LaWRzIFszIDAgUl0KL0NvdW50IDEKPD4KZW5kb2JqCjMgMCBvYmoKPDwKL1R5cGUgL1BhZ2UKL1BhcmVudCAyIDAgUgovTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQovUmVzb3VyY2VzIDw8Ci9Gb250IDw8Ci9GMSA0IDAgUgo+Pgo+PgovQ29udGVudHMgNSAwIFIKPj4KZW5kb2JqCjQgMCBvYmoKPDwKL1R5cGUgL0ZvbnQKL1N1YnR5cGUgL1R5cGUxCi9CYXNlRm9udCAvSGVsdmV0aWNhCj4+CmVuZG9iago1IDAgb2JqCjw8Ci9MZW5ndGggNDQKPj4Kc3RyZWFtCkJUCi9GMSAxMiBUZgoxMDAgNzAwIFRkCihIZWxsbyBXb3JsZCkgVGoKRVQKZW5kc3RyZWFtCmVuZG9iagp4cmVmCjAgNgowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMDkgMDAwMDAgbiAKMDAwMDAwMDA1NCAwMDAwMCBuIAowMDAwMDAwMTAxIDAwMDAwIG4gCjAwMDAwMDAxNzAgMDAwMDAgbiAKMDAwMDAwMDI0NCAwMDAwMCBuIAp0cmFpbGVyCjw8Ci9TaXplIDYKL1Jvb3QgMSAwIFIKPj4Kc3RhcnR4cmVmCjM0MQolJUVPRg==",
"imageFile": "iVBORw0KGgoAAAANSUhEUgAA...",
"imageName": "signature.jpg",
"pages": "1-3",
"alignX": "Right",
"alignY": "Bottom",
"widthInMM": "50",
"heightInMM": "25",
"widthInPx": "142",
"heightInPx": "71",
"marginXInMM": "20",
"marginYInMM": "20",
"marginXInPx": "57",
"marginYInPx": "57",
"opacity": "100",
"showOnlyInPrint": true,
"isBackground": false,
"async": true
}
代码示例
这 PDF4me 符号 PDF REST API 提供多种编程语言的代码示例。请选择最适合您开发环境的语言:
- C#
- Java
- JavaScript
- Python
- Salesforce
- n8n
- Google Script
- AWS Lambda
PDF 签名功能
签名图像控制
- 格式支持: JPG, PNG、GIF 和其他标准图像格式
- 质量保持:保持签名图像的质量和分辨率 PDF 输出
- Base64 编码:通过安全方式传输签名 Base64 编码
- 灵活尺寸:提供毫米级和像素级两种尺寸选项
- 专业形象:清晰可见的高质量签名渲染
定位和布局
- 对准控制精确的水平和垂直对齐选项
- 边距设置:毫米级和像素级定位
- 灵活就业支持任何页面位置和方向
- 页面定位:应用于特定页面或整个文档
- 尺寸控制可定制尺寸,以实现最佳摆放效果
高级功能
- 不透明度控制可调节透明度,实现低调或醒目的签名效果
- 后台模式可选择将签名置于内容之前或之后。
- 打印控制配置签名仅在打印或屏幕上显示
- 专业成果创建可增强文档认证和安全性的签名
- 灵活定位:以像素级精度控制水平和垂直对齐。
行业应用案例及应用
- Legal & Professional Services
- Finance & Banking
- Business & Enterprise
- Government & Compliance
法律及专业服务用例
- 法律文件在法律合同、协议和官方文件上签名
- 合同签署以电子方式签署合同和协议,以确保其法律效力。
- 法庭文件将数字签名应用于法庭文件和法律文件
- 合规要求满足文件签署和认证方面的监管要求
金融与银行业应用案例
- 发票签署:以电子方式签署发票和采购订单
- 财务文件在财务报告和报表上签字
- 贷款文件以电子方式签署贷款协议和财务文件
- 监管合规满足金融文件签署的监管要求
商业及企业应用案例
- 业务工作流程以电子方式签署发票、采购订单和商业文件
- 文件认证为 PDF 文档添加数字签名以进行身份验证和验证
- 报告生成在生成的报告和正式文件上添加签名
- 公司文件签署公司文件和官方函件
政府及合规应用案例
- 合规要求满足文件签署和认证方面的监管要求
- 政府文件将数字签名应用于政府文件和表格
- 监管文件以电子方式签署监管和合规文件
- 公共记录在公共记录和官方文件上签名