文件图片 本地计算 开箱即用 内置示例 不留痕迹

PDF 转图片

在浏览器本地用 pdf.js 把 PDF 每一页渲染成 PNG 图片:三档清晰度(1×/2×/3×)、文件名前缀自定义、逐张下载。合同、作业、发票这类文件从头到尾不离开你的设备。

把 PDF「变成图片」的场景很碎:往群里发一页截图、把证书贴进不能传 PDF 的表单、给课件逐页配图文。本工具把每个页面按选择的清晰度渲染成 PNG,一页一条下载链接,命名按「前缀-页码」自动编号,下完即用。

口径提醒:PNG 是无损位图,图重型 PDF 逐页出图后总体积可能比原 PDF 大(原文件里的 JPEG 被摊平成位图);只需其中几页的话,可先用 PDF 拆分工具挑页再转;超过 60 页的文件也建议先拆分。

—

—

使用步骤

  1. 「选择文件」上传一个 PDF(或直接用内置示例)。
  2. 选清晰度档位:1× 标准、2× 高清、3× 超清。
  3. 需要的话改文件名前缀,默认按「前缀-页码.png」编号。
  4. 点「开始导出」,逐页渲染完成后按页下载 PNG。

计算原理与示例

怎么把 PDF 每页转成图片

上传 PDF 后页面先本地扫描出总页数,选好档位点「开始导出」:pdf.js 在浏览器里把每一页排版绘制到画布,再编码成 PNG,每页生成一条「前缀-页码.png」下载链接,逐个保存即可。

清晰度档位怎么选

1× 约等于屏幕标准的 96 DPI,出图最小、适合预览或缩略;2×(约 192 DPI)文字清晰,适合贴进聊天和文档,是默认档;3×(约 288 DPI)适合要打印或要看小字的场合,出图最大也最慢。

为什么导出的 PNG 比原 PDF 大

原 PDF 里的照片通常以 JPEG 有损压缩存放,转 PNG 时会被还原成无损位图,所以图重型文件出图变大是正常现象,不是转错了。想控制体积可以降一档清晰度,或用「PDF 压缩」先把源文件瘦身。

只想要其中几页怎么办

当前版本逐页全量导出。只要其中几页的话,先用 PDF 拆分工具把目标页存成小文件再转;反向需求(图片合成 PDF)可以用「图片转 PDF」。

代码示例

JavaScript pdf.js 逐页渲染成 PNG(浏览器内,不上传)

// 先加载 pdf.js(本页用的就是这套链路),worker 走同源文件
const doc = await pdfjsLib.getDocument({ data: bytes }).promise;

for (let i = 1; i <= doc.numPages; i++) {
  const page = await doc.getPage(i);
  const vp = page.getViewport({ scale: 2 });          // 2× ≈ 192 DPI
  const cv = document.createElement('canvas');
  cv.width = vp.width; cv.height = vp.height;
  await page.render({ canvasContext: cv.getContext('2d'), viewport: vp }).promise;
  cv.toBlob((blob) => download(blob, `page-${i}.png`), 'image/png');
}

Shell pdftoppm 批量出图(本机命令行)

# 整个 PDF 逐页导出 PNG,200 DPI,文件名 page-1.png、page-2.png…
pdftoppm -png -r 200 input.pdf page

# 只导出第 2~4 页
pdftoppm -png -r 200 -f 2 -l 4 input.pdf page

# JPEG 出图(图重型页面体积更友好)
pdftoppm -jpeg -r 150 input.pdf page

常见问题

PDF 会上传到服务器吗?

不会。扫描、渲染、编码 PNG 全部在你的浏览器里完成(pdf.js 本地运行),合同、证件、病历这类敏感文件不出本机,也没有上传带宽带来的等待。

最多能转多少页?

单个文件限 60 页以内、30 MB 以内:逐页渲染是重活,页数再多浏览器会明显变慢。超长文档先用 PDF 拆分工具分段处理即可。

扫描版 PDF 也能转吗?

能。扫描版 PDF 每页本来就是一张压缩照片,转 PNG 属于「再摊平一次」,画质不会比原文件差;只是出图体积会明显变大,建议选 1× 或 2× 档。

导出的图片尺寸是多少?

按页面物理尺寸乘档位:A4 页 1× 约 595×842 像素、2× 约 1190×1684、3× 约 1785×2526。横版或异形页面按其 MediaBox 等比换算。

能改成导出 JPG 吗?

当前版本只出 PNG(无损、透明背景友好)。JPG 适合照片页省体积,可以导出 PNG 后用「图片压缩」工具转存;后续版本会评估直接出 JPG 的档位。

为什么点导出后半天没出链接?

大文件高倍率逐页渲染需要时间(每页一次光栅化),页面多时请耐心等待;30 页以上建议先用拆分工具分段。若文件超过 60 页会直接提示超限。

文件名可以自定义吗?

可以设置前缀:导出名自动编号为「前缀-页码.png」,例如前缀 slide 得到 slide-1.png、slide-2.png。前缀里的非法文件名字符会被自动去掉。

加密的 PDF 能转图片吗?

带打开密码的 PDF 无法读取,需要先移除密码;只有权限限制(禁止复制/打印)而无打开密码的文件一般可以正常渲染导出。

延伸阅读

来自本站原创文章,讲清这个工具背后的算法与口径。