PDF 表单扁平化

将 PDF 表单扁平化:把字段值烧录为静态内容,使结果不可编辑

将每个 AcroForm 字段的当前外观烧录为静态页面内容,然后移除可编辑字段。当表单已在别处(如阅读器)填写好、你只想锁定它时使用——无需填写数据。基于 pdf-lib 的纯 JS 实现。

示例结果

2 个示例

锁定已填表单用于分发

将已在阅读器中填写好的表单扁平化,输出不可编辑且视觉一致。

pdf-form-flatten-example1.pdf 查看文件
查看输入参数
{ "pdfFile": "/public/samples/pdf/form-sample-filled.pdf", "updateAppearancesFirst": true, "removeNeedAppearances": true, "keepFormStructure": false }

不改外观直接扁平化

源文件已有正确外观流时跳过外观重建(更快)。

pdf-form-flatten-example2.pdf 查看文件
查看输入参数
{ "pdfFile": "/public/samples/pdf/form-sample-filled.pdf", "updateAppearancesFirst": false, "removeNeedAppearances": true, "keepFormStructure": false }

Click to upload file or drag and drop file here

Maximum file size: 100MB Supported formats: application/pdf

Regenerate appearance streams before flattening so values render correctly

Clear the NeedAppearances flag so viewers don't regenerate appearances

Only update appearances but keep the AcroForm shell (rare)

关键信息

分类
文档与 PDF
输入类型
file, checkbox
输出类型
file
样本覆盖
4
支持 API
Yes

概览

PDF 表单扁平化工具能够将 PDF 文件中可编辑的 AcroForm 表单字段值直接烧录为静态页面内容,并彻底移除可编辑的表单框。该工具基于纯 JS 在浏览器本地运行,无需重新填写数据,即可快速锁定已填写的 PDF 表单,防止内容被篡改或在不同阅读器中显示异常。

适用场景

  • 当您已在阅读器中填写好 PDF 表单,需要将其锁定为不可编辑的只读版本进行分发时。
  • 为了防止他人篡改 PDF 表单中的输入数据,确保合同、申请表或发票的真实性与安全性时。
  • 当 PDF 表单在某些移动端设备或浏览器中打开时出现字体或字段显示不一致,需要固定其视觉外观时。

工作原理

  • 上传需要扁平化的 PDF 表单文件。
  • 根据需要选择是否在扁平化前更新字段外观,以及是否移除 NeedAppearances 标志或保留表单结构。
  • 系统通过 pdf-lib 将当前的 AcroForm 字段外观绘制为静态页面元素,并移除交互式表单字段。
  • 处理完成后,直接下载已锁定且不可编辑的扁平化 PDF 文件。

使用场景

合同与协议签署归档:将双方填写完毕的 PDF 合同进行扁平化,防止后续被单方面修改。
电子发票与收据发送:锁定已填写的发票金额和客户信息,确保分发给客户时数据安全。
跨平台表单展示优化:消除不同 PDF 阅读器对交互式表单渲染不一致的问题,统一视觉呈现。

用户案例

1. 锁定已填写的入职申请表

人事专员
背景原因
收到候选人填写的 PDF 申请表,需要将其归档到员工档案系统中,防止后续被意外修改。
解决问题
候选人提交的 PDF 仍处于可编辑状态,直接归档存在数据被篡改的风险。
如何使用
上传候选人填写的 PDF 文件,勾选“先更新字段外观”和“移除 NeedAppearances 标志”,不勾选“保留表单结构”,然后点击开始处理。
示例配置
{"updateAppearancesFirst": true, "removeNeedAppearances": true, "keepFormStructure": false}
效果
导出的 PDF 文件中所有填写的信息均已烧录为静态文本,表单框消失,文件变为只读状态。

2. 快速扁平化标准发票模板

财务出纳
背景原因
财务系统生成了带有正确外观流的 PDF 电子发票,需要快速去除表单属性以便发送给客户。
解决问题
交互式表单发票在某些客户的手机浏览器中无法正常显示填写的金额。
如何使用
上传发票 PDF,关闭“先更新字段外观”以加快处理速度,保持“移除 NeedAppearances 标志”开启,点击扁平化。
示例配置
{"updateAppearancesFirst": false, "removeNeedAppearances": true, "keepFormStructure": false}
效果
快速生成了静态 PDF 发票,在任何移动端浏览器中均能完美且一致地显示发票内容。

用 Samples 测试

pdf, video, file

相关专题

常见问题

扁平化后的 PDF 还能重新编辑表单吗?

不能。扁平化会将表单字段转换为普通的静态页面内容,交互式输入框将被彻底移除,无法再进行编辑。

“先更新字段外观”这个选项有什么作用?

它会在扁平化前重新生成字段的外观流,确保填写的文字和数值在最终的静态 PDF 中能够正确渲染和显示。

什么是“移除 NeedAppearances 标志”?

移除该标志可以防止其他 PDF 阅读器尝试重新渲染表单外观,从而保证在所有设备上看到的视觉效果完全一致。

扁平化会影响 PDF 中的其他内容(如图片或普通文本)吗?

不会。扁平化仅针对交互式表单字段(AcroForm),页面上的其他静态文本、图片和排版将保持原样。

我的 PDF 文件会被上传到服务器吗?

不会。本工具基于纯 JS 实现,所有扁平化处理均在您的浏览器本地完成,文件不会被上传,确保您的数据隐私。

API 文档

请求端点

POST /zh/api/tools/pdf-form-flatten

请求参数

参数名 类型 必填 描述
pdfFile file (需要先上传) -
updateAppearancesFirst checkbox Regenerate appearance streams before flattening so values render correctly
removeNeedAppearances checkbox Clear the NeedAppearances flag so viewers don't regenerate appearances
keepFormStructure checkbox Only update appearances but keep the AcroForm shell (rare)

文件类型参数需要先通过 POST /upload/pdf-form-flatten 上传获取 filePath,然后将 filePath 传递给对应的文件字段。

响应格式

{
  "filePath": "/public/processing/randomid.ext",
  "fileName": "output.ext",
  "contentType": "application/octet-stream",
  "size": 1024,
  "metadata": {
    "key": "value"
  },
  "error": "Error message (optional)",
  "message": "Notification message (optional)"
}
文件: 文件

AI MCP 文档

将此工具添加到您的 MCP 服务器配置中:

{
  "mcpServers": {
    "elysiatools-pdf-form-flatten": {
      "name": "pdf-form-flatten",
      "description": "将 PDF 表单扁平化:把字段值烧录为静态内容,使结果不可编辑",
      "baseUrl": "https://elysiatools.com/mcp/sse?toolId=pdf-form-flatten",
      "command": "",
      "args": [],
      "env": {},
      "isActive": true,
      "type": "sse"
    }
  }
}

你可以串联多个工具,比如:`https://elysiatools.com/mcp/sse?toolId=png-to-webp,jpg-to-webp,gif-to-webp`,最多20个。

支持 URL 文件链接或 Base64 编码作为文件参数。

如果遇见问题,请联系我们:[email protected]