要继续编辑、要清晰选 PNG;要发微信、控体积选 JPG。
A4 页面在 300 DPI 下约 2480 × 3508 像素,页数多请酌情降档。
页码从 1 开始,支持区间:1-3,8 表示只导出第 1~3 和第 8 页。
导出文件名形如 前缀_01.png,页码自动补零对齐。
选好 PDF,选个清晰度,一键导出成图片。
以 A4 页面为例,先看这张表再决定。
| 清晰度 | 单页像素(A4) | 单页体积(PNG) | 适合 |
|---|---|---|---|
| 96 DPI | 794 × 1123 | 约 100~300 KB | 屏幕预览、网页配图 |
| 150 DPI | 1240 × 1754 | 约 300 KB~1 MB | 微信/钉钉发送、日常存档 |
| 300 DPI | 2480 × 3508 | 约 1~4 MB | 打印、印刷、材料提交 |
转图片是有损的一步,先看清楚。
| 点 | 说明 | 怎么处理 |
|---|---|---|
| 文字不再可选中 | 变成位图像素 | 要保留文字请用「PDF 提取文字」 |
| 放大会模糊 | 分辨率在导出时就定死了 | 先想清楚用途,宁可选高一档 |
| 页数多会很慢 | 每页都要真实渲染 | 先用页码范围只转需要的几页 |
| 扫描件转出来就那样 | 原始分辨率不会凭空变高 | 想更清晰只能重新扫描 |
⚠️ 免责声明:转换后的图片是位图,文字不再可选中、放大可能模糊。
本工具生成的图片不会影响你的原 PDF,原文件请继续保留。
清晰度(DPI)在导出时就已确定,后期放大无法增加细节;扫描件转出来的清晰度上限取决于原始扫描分辨率。
页数较多或选择 300 DPI 时,渲染会占用较多内存与时间,请耐心等待;带密码加密的 PDF 无法处理。
所有处理均在你的浏览器本地完成,文件不会上传到任何服务器,本站也不留存任何副本。
要把合同某一页发到群里、要把 PDF 里那张图抠出来、系统只收图片不收 PDF、需要把每页做成 PPT 的素材——想把 PDF 变成图片,用完整版 PDF 编辑器太重,在线站点又要求你把文件传上去。
这个工具三步搞定:选文件 → 选格式和清晰度 → 下载,多张自动打包成 ZIP。
它具体怎么做的?
① 读取:用 pdf.js 载入文件,读出总页数;
② 解析页码:留空表示全部页,填了 1-3,8 就只导出第 1~3 和第 8 页,支持中英文逗号、逆序纠正、重复去重、越界忽略;
③ 计算尺寸:按你选的 DPI 换算缩放比(scale = DPI / 72),得到该页的目标像素尺寸;
④ 真实渲染:创建 canvas,用 page.render() 把这一页按矢量指令重新绘制到画布上——所以文字、线条、矢量图都会被完整画出来,不是截图;
⑤ 导出位图:canvas 转成 PNG 或 JPG Blob(选 JPG 时先铺白底,避免透明区变黑);
⑥ 打包:单张直接下载,多张用 JSZip 打包成 ZIP,文件名形如 前缀_01.png,页码自动补零。
几个实战建议:
· 发微信/钉钉:JPG + 150 DPI,体积小又能看清;
· 要打印/提交材料:PNG + 300 DPI;
· 只要其中几页:填页码范围,比全部转完再挑快得多;
· 页数很多:先降一档 DPI 或分批转,避免浏览器内存吃紧;
· 还想保留文字:那不是转图片,请用「PDF 提取文字」。
最后一句:整个过程都在你自己浏览器里完成,文件不会上传到任何服务器。
怎么处理:
① pdf.js 载入文件读出总页数;
② 页码串(留空 = 全部)解析为 0-based 索引;
③ scale = DPI / 72,page.getViewport({scale}) 得到目标像素尺寸;
④ 创建 canvas,page.render({canvasContext, viewport}) 按矢量指令重绘,渲染完 cleanup() 释放;
⑤ canvasToBlob() 导出 PNG / JPG(JPG 先铺白底),命名 前缀_01.png;
⑥ 单张直接下载,多张 JSZip 打包 ZIP。
它不做:不修改原文件、不保留可选中文字、不做 OCR、不提升扫描件的原始分辨率、不压缩到指定 KB(可转完后用「压缩图片到指定 KB」)。
1-3,8),留空转全部。1-3,8);单张直接下载、多张自动打包 ZIP,文件名按页码自动补零;结果区提供前 12 页缩略图预览与总大小、单页像素等数据。选 JPG 时自动铺白底避免透明区发黑。附清晰度对照表与注意点表。全程浏览器本地处理,文件不上传,适配黑夜模式。
审核通过后就会展示在留言板上,稍安勿躁~
还没有留言,来抢沙发吧!