从 PDF 里提取图片:要的是图,不是整页截图
来自 FreePDF 团队 ·
供应商发来一份 40 页的产品册,你只要里面的产品图。一张张截图会掉分辨率,把 PDF 转成 JPG 又只会得到一整页、文字也印在上面。你真正想要的是图片本身——当初有人把它拖进文档、再导出成 PDF 之前的那些图片文件。
提取图片不等于把页面转成图片
这是两件事,只是工具名字听起来差不多,所以先说清楚你需要哪一个。
- PDF 转 JPG:把每一页整体渲染成一张图。文字、照片、页码全在里面,分辨率你自己定。
- 提取图片:伸进文件内部,把嵌入的图片一张张取出来,各存一个文件,分辨率就是它当初被存进去的那个。
导出过程中不做任何重新编码。一张 3000×2000 的照片出来还是 3000×2000,哪怕它在版面上被缩成了小图——PDF 里存的是完整图片,只是显示得小而已。这一点常常是个惊喜:图比页面上看到的大得多。
ZIP 里会有什么
所有图片打包成一个 ZIP,省得你点 60 次下载。每个文件按来源页命名、按出现顺序编号,所以 page7_23_Im4.png 就是第 7 页上的第 4 个图片对象。文件夹按名称排序,图片顺序就跟阅读顺序一致,很容易对回原文。
格式是 PDF 里存的原格式,一般是 PNG 或 JPG。文件数量可能比你以为的多:页面底纹、每页页眉里重复的 logo、被存成 2 像素图片的细线。心里有数,扫一眼删掉就行,别默认每个文件都是照片。
有些图就是提不出来
工具只找位图,也就是由像素构成的那种。页面上有些看着像图的东西,其实不是这么存的:
- 矢量绘制的 logo、图标和图表。 从 Illustrator 导出、或者报表工具生成的图表,往往是一组绘图指令,不是图片。文件里没有图片对象可取,工具会直接告诉你一张都没找到。
- 被切成条的照片。 有些排版软件写 PDF 时会把大图横切成若干条。你拿到的就是这些条带,顺序是对的,但得自己拼回去。
- 在版面里裁过的图。 裁切只是一条显示指令,所以你拿回的是完整的原图,包括页面上被挡住的部分。
碰上第一类,改成渲染整页再裁。原始分辨率是没了,但 300 DPI 的整页渲染,放进幻灯片或文档里足够清晰。
扫描件是另一回事
如果 PDF 是扫描仪或者手机扫描 App 出来的,那每一页本身就是一张大图。提取出来的正是这个:一页一张照片,就是扫描件本身,分辨率就是当初扫的那个。想把别人合并进一份文档里的原始扫描件取回来,这非常有用;想单独抠出页面上印着的某张插图,那就没用了。要插图的话,把整页图提出来自己裁。
常见问题
提取出来的图会比 PDF 里的画质差吗?
不会。嵌入的图片数据是原样拷出来的,不重新保存,也就没有第二轮压缩。如果做文档时那张照片已经被压到 72 DPI,你拿回的就是 72 DPI。提取不会让它更糟,但也变不出 PDF 里本来就没有的细节。
能只提某一页的图吗?
不能一步到位,但两步就行:先把那一页单独提取成一个 PDF,再对它做图片提取。文档很长时,这通常比在塞满页眉和细线的 ZIP 里翻找快得多,文件名也更干净。