如何将 PDF 转换为图片
把 PDF 页面变成 PNG、JPG 或 WEBP 是很常见的需求:幻灯片需要图片,问题追踪系统对图片的预览更可靠,某些印刷方甚至只接受图片。本文完整介绍整个流程,以及大家最常遇到的问题。
为什么要转换 PDF
PDF 是对页面的描述,而不是页面的图像。它把文字存为字符、把图形存为曲线、把字体存为内嵌的程序,并期待阅读器在需要时把这一切绘制出来。这正是 PDF 无论放大到什么程度都清晰的原因,但也让它难以嵌入其他文档。把 PDF 粘贴进演示文稿,结果就取决于那个软件恰好使用的渲染引擎。
图片则不存在这种不确定性。一旦页面被栅格化,任何查看器显示的都是同样的像素。多数人做转换的真正理由正在于此:不是图片更好,而是图片更经得起流转。
分步操作
先打开转换工具,稍等片刻让渲染引擎载入。首次访问时浏览器会下载一个几兆字节的 WebAssembly 模块,之后就会被缓存。当加载提示消失、上传区域出现时,工具就准备好了。
把 PDF 拖到上传区域,或点击浏览选择文件。前几页会渲染成缩略图,方便您确认这正是想要的文档。此时没有任何内容被上传,之后也不会有。
接着选择参数。挑选输出格式,设定与用途相符的缩放倍率,如果选的是 JPG 或 WEBP 则再调整图片质量。点击「转换为图片」,工具会逐页渲染,打包成 ZIP 压缩包,并作为下载交给浏览器。
压缩包内每个文件都以原文档名加页码命名,因此无论操作系统如何排序,解压后页面顺序依然清晰可辨。
输出看起来模糊时
模糊几乎总是缩放倍率的问题。PDF 页面以点为单位,1 点等于 1/72 英寸,因此按 1x 渲染只能得到约每英寸 72 像素。这对缩略图够用,对任何需要仔细查看的用途都太粗糙了。
提高倍率即可解决。2x 约为 144 dpi,在屏幕上看已经足够清晰;4x 接近 288 dpi,用于打印正文也说得过去。如果页面以小号文字或精细线条为主,继续往上调是值得的。
但要注意一点:缩放对宽和高同时生效,因此像素数以平方增长。从 2x 调到 4x,体积不是翻一倍,而是大约四倍。请选择实际看起来足够清晰的最小倍率,而不是直接拉到 10x。
压缩包过大时
如果 ZIP 意外地大,原因通常是在高倍率下使用了 PNG。PNG 是无损格式,一页 300 dpi 的密集文字就可能达到好几兆字节,一百页的文档累加起来就很可观了。
换成质量约 0.85 的 JPG 或 WEBP,通常能在看不出差别的情况下大幅缩减总体积,而相同质量下 WEBP 一般优于 JPG。另一个手段是把缩放倍率降一档,而且这往往更有效。
相比之下,提高 ZIP 压缩级别帮助不大。PNG、JPG 和 WEBP 本身都已经过压缩,几乎没有多余的冗余留给 deflate 去消除,您付出的主要是处理时间。
大文档与浏览器内存
由于一切都在浏览器内完成,实际上限取决于您可用的内存,而不是上传配额。每一页在编码之前都会被渲染成完整尺寸的位图,因此非常长的文档配上非常高的倍率,可能会耗尽浏览器愿意分配的内存。
如果大文件处理卡住或标签页失去响应,请先降低缩放倍率,并考虑在转换前把 PDF 拆分成较小的部分。关闭其他占用资源的标签页同样能腾出余量。
小结
希望文字像素级精确就选 PNG,在意体积就选 JPG 或 WEBP;缩放倍率要从实际需要的 DPI 倒推,而不是直接取最大值;ZIP 压缩级别不必去动。做到这几点,绝大多数转换场景都能顺利完成。