PDF 处理不是一个单一操作。把页面渲染成图片、重写对象结构、合并文件和提取页面,会分别影响文本、字体、注释、表单、附件、元数据、加密、书签、页码标签和数字签名。可靠的流程应先定义哪些属性必须保留,再验证输出,而不是笼统承诺所有转换“无损”。
核心要点
- 保留源文件,并记录源哈希、处理器版本、选项、操作者、时间和输出哈希。
- PDF 转 JPEG 是栅格化步骤,可能丢失可选文本、链接、表单、矢量几何、图层和无障碍结构。
- 压缩可能是无损或有损;体积变化和视觉质量取决于真实内容与参数,固定百分比不是通用结论。
- 合并和拆分可能改变页面树、目录、页码标签、注释、表单、附件、元数据、加密和签名。
- 浏览器界面不等于文件一定留在本地;处理敏感文档前,应验证实现、网络请求、留存策略和失败清理。
按必须保留的属性选择操作
先写出工作流的核心不变量:
| 任务 | 典型转换 | 应验证 |
|---|---|---|
| 渲染页面 | PDF 页面转像素 | 尺寸、色彩、文字可读性、页数 |
| 压缩 | 重写流和/或图片 | 视觉质量、文字提取、体积、规范 |
| 合并 | 创建新的页面树 | 顺序、目录、页码、表单、注释、附件 |
| 拆分 | 创建子集或重写文档 | 选中页面、元数据、签名、加密 |
| 图片转 PDF | 把像素放置到新页面 | 方向、裁剪、物理尺寸、色彩配置、无障碍 |
“文件能打开”只是冒烟测试,不能证明目标内容、语义、权限或元数据已经保留。
PDF 转图片
渲染适合缩略图、幻灯片背景、视觉审查和只接受图片的系统,但不能替代可搜索或无障碍文档。JPEG 通常会引入有损编码;PNG 可以无损保存渲染后的像素,却仍不会保留 PDF 的文本选择、超链接、表单字段、注释、附件、书签或标签结构。
输出尺寸应以像素或明确的物理打印要求定义,不应把 DPI 当成普遍质量旋钮。渲染需要选择栅格宽度、色彩空间、透明度策略和插值方法。应在目标设备上测试小字号、细线、透明度、旋转页面、裁剪和色彩管理内容。
发布图片时要提供有意义的替代文本或等价文本。栅格化不是脱敏手段:源文件或后续流程仍可能包含隐藏文本、元数据、附件和未选中的页面。
压缩与优化
PDF 压缩可能包括图片重采样、支持的图片重编码、字体子集化、对象流重写、重复资源删除和流压缩。结果取决于图片内容、字体嵌入、透明度、过滤器和阅读器实现。
不存在普遍适用的“减少 10%–30%”或“减少 60%–80%”,90% 这样的质量数字也不能跨编码器比较。应测量前后字节数,并执行以下检查:
- 打开每一页,对代表性文字、线条、图片和透明效果进行比较。
- 检查文字提取、搜索、复制粘贴、链接、表单、注释和附件。
- 如果要求 PDF/A 或其他规范,使用理解该规范的验证器检查。
- 确认加密和签名状态符合预期。
- 输出不可逆或未达到验收标准时,保留并继续使用源文件。
合并与拆分
合并和拆分是文档重写,不是简单拼接字节。工具可能在保留页面视觉内容的同时改变:
- 目录目标、页码标签、命名目标和文章线程;
- AcroForm 字段名、外观、计算脚本和单选组;
- 注释、嵌入文件、JavaScript 动作、元数据和附件;
- 加密设置、权限标志、线性化和增量更新历史。
合并后应检查页面顺序、方向、标签、目录、表单行为、注释、附件、文本提取和无障碍标签。拆分后应确认被排除的页面、隐藏附件、元数据和书签不会泄露信息。拆分不等于脱敏。
数字签名绑定特定的字节表示或修订版本。重写、合并、拆分、优化或增加元数据通常会使签名失效。处理前后都要验证签名;没有密码学验证时,不能声称重写文件仍保留原签名。
图片转 PDF
图片导入只是把像素放到页面上,除非明确执行并审查 OCR,否则不会产生可搜索文本。应定义页面尺寸、方向、裁剪、边距、缩放、色彩配置,以及是否应用图片的 EXIF 方向。打印物理尺寸取决于放置方式和分辨率元数据,单独写“300 DPI”并不能定义输出。
对于扫描件,应决定 OCR 文本是否作为不可见层嵌入、如何复核识别错误,以及使用的语言模型和版本。保留源图片,并在发布前比较页序、旋转、裁剪、文字提取和无障碍表现。
隐私与安全
应把 PDF 当作包含结构和行为的输入,而不是普通图片。文件可能包含脚本、外部动作、嵌入文件、表单、链接、批注、隐藏图层、元数据以及阅读器未立即显示的页面。处理不可信文件时,应使用带资源限制的解析/渲染沙箱;除非受控流程确实需要,否则禁用网络访问。
“设置密码”和 PDF 权限标志不等于授权。接收者仍可能截图、复制或重新处理内容。加密只有在密钥管理正确时才保护数据,也不能证明谁有权访问文档。
对于浏览器流程,应通过网络检查和公开策略验证真实数据路径。客户端 JavaScript 仍可能加载远程代码、遥测、字体或错误上传。应定义文件大小、页数、解压、内存、时间和输出限制,并在成功与失败路径都清理临时缓冲区。
可复现的处理记录
每份文档都应保存:
源文件哈希:
源格式与规范:
处理器及版本:
选项与地区设置:
操作者与时间:
输出哈希:
验证结果:
签名/加密状态:
这些记录可以解释视觉或语义差异,也能在工具升级后重复处理。测试时不要覆盖唯一的源文件。
交付前检查清单
交付前至少使用一个独立阅读器检查输出;必要时再使用文本提取器和规范验证器。检查页数和顺序、尺寸、旋转、文本选择、字体、链接、表单、注释、附件、元数据、无障碍标签、加密和签名状态。若接收方包含移动端或打印机,还应在真实设备上测试。
常见问题
PDF 转 JPG 是无损的吗?
不是。栅格化会丢失 PDF 语义,JPEG 通常还是有损编码。PNG 可以保留渲染后的像素,却不能保留文本、表单、链接或 PDF 元数据。
拆分 PDF 会自动删除机密信息吗?
不会。保留的页面、元数据、附件、注释、隐藏内容和输出历史都需要审查。脱敏必须是有意执行并经过验证的删除流程。
合并后还能保留数字签名吗?
通常不能。重写可能改变签名覆盖的字节范围或修订版本。每次操作后都应重新验证;有要求时重新签名。
PDF 密码能证明访问控制吗?
不能。加密和阅读器权限标志只是有明确限制的控制措施,不是完整的身份、授权或分发策略。
浏览器工具能保证文件不会离开设备吗?
只有证据才能支持这种声明:应检查实现和网络路径,了解第三方依赖与遥测,并验证留存及失败处理。地址栏显示浏览器页面本身不是证明。
应如何选择压缩参数?
针对真实文档和验收标准测量。保留源文件,比较视觉和语义表现,并优先使用规范验证器或有文档的预设,而不是照搬没有上下文的质量百分比。
总结
正确的 PDF 工作流取决于必须保留的是像素、可搜索文本、页面结构、无障碍、签名、机密性还是可复现性。选择能够保留该属性的转换方式,记录假设并验证结果。这样虽然比“转换后立即下载”的无条件承诺更谨慎,却能避免一个看似有效的 PDF 悄悄丢失文档真正需要的属性。