ARTICLE · 1324578
pdf2png — PDF 转 PNG 命令行工具 —— 附 go 源码 和 exe 下载
用 Go 实现的命令行工具:把 PDF 每一页渲染成 PNG 图片,一页一张,按页码命名保存。

功能特性
支持指定 PDF 文件,或指定文件夹(自动递归扫描所有子文件夹中的 PDF)
支持指定起始页
-f/ 结束页-l,或转换全部页一个 PDF 一个输出子目录,以 PDF 文件名命名
页码自动零填充命名(
page_001.png、page_002.png…)并发处理多个 PDF,可指定并发数
渲染引擎自动探测,支持三种引擎:Poppler(pdftoppm)、Ghostscript(gs)、MuPDF(mutool)
只从系统 PATH 查找引擎;会逐层检查每个 PATH 目录、
bin/、Library/bin/子目录(兼容 Poppler 官方发行包的目录布局)
编译
需要 Go 1.21+:
go build -o pdf2png.exe .Windows 上编译产物是 pdf2png.exe,Linux/macOS 上去掉后缀即可。
使用
# 转换单个 PDF 全部页pdf2png.exe -o output "D:/books/示例.pdf"# 转换指定 3..10 页pdf2png.exe -o output -f3-l10"示例.pdf"# 递归转换整个文件夹(含子文件夹)的所有 PDFpdf2png.exe -o output "D:/books"# 多个文件、指定并发和 DPIpdf2png.exe -o output -w4-dpi200 *.pdf# 覆盖已存在的输出(默认是跳过已存在的)pdf2png.exe -o output -overwrite"示例.pdf"
选项说明
| 选项 | 默认值 | 说明 |
|---|---|---|
-o <dir> | ./pdf2png_out | 输出根目录 |
-f <n> | 1 | 起始页码(从 1 开始,含) |
-l <n> | 0 | 结束页码(含,0 表示到最后一页) |
-dpi <n> | 150 | 渲染分辨率 DPI(文字/图像清晰度) |
-w <n> | 2 | 并发处理的 PDF 数量 |
-p <pattern> | page_%d.png | 输出文件名模板,%d 为页码占位符(自动零填充) |
-engine <name> | 自动探测 | 指定渲染引擎:poppler / gs / mupdf |
-overwrite | false | 覆盖已存在的输出目录 |
-timeout <sec> | 600 | 单个 PDF 渲染超时时间 |
-q | false | 静默模式 |
输出结构
output/├── 标题1.pdf的目录/│ ├── page_001.png│ ├── page_002.png│ └── ...└── 标题2/ └── ...
渲染引擎说明
工具不嵌入 PDF 解析库,而是调用成熟的外部渲染引擎:
Poppler(pdftoppm) — 优先使用
Ghostscript — 系统装的
gs/gswin64c.exeMuPDF — 系统装的
mutool
工具只从系统 PATH 查找引擎,不会搜索程序目录下的 tools 或其他位置。查找时会对每个 PATH 目录逐层检查:目录本身、bin/、Library/bin/,以兼容 Poppler 官方发行包把可执行文件放在 Library\bin 的布局。
例如 Poppler 装在 D:\develop\poppler-25.07.0,只要把该顶层目录加进 PATH 即可,工具会自动找到它下面的 Library\bin\pdftoppm.exe。
也可以手动指定引擎:pdf2png.exe -engine poppler ...
poppler 下载:https://github.com/oschwartz10612/poppler-windows/releases (Release-xx.zip 解压即用,无需安装)。
常见问题
报错"未找到任何渲染引擎":说明系统 PATH 里没有这些引擎。检查 Poppler 是否安装,以及 PATH 是否包含存放
pdftoppm.exe的目录(或包含它的上级目录,工具会自动下钻查找bin/、Library/bin/)。中文 PDF 渲染空白:可能是 PDF 使用内嵌字体缺失,尝试调高
-dpi。文件名含特殊字符:输出目录名会自动把
:/?*"<>|替换为_。
通过网盘分享的文件:pdf2png.zip链接: https://pan.baidu.com/s/17d8Mz4CgE8da0_yb6n5qbA?pwd=ixpk提取码: ixpk通过网盘分享的文件:poppler-25.07.0.zip链接: https://pan.baidu.com/s/1NjB9DEgw0MgD4LcTRU6VZw?pwd=adgj提取码: adgj















































































