夜雨聆风学习资料网

ARTICLE · 1324578

pdf2png — PDF 转 PNG 命令行工具 —— 附 go 源码 和 exe 下载

pdf2png — PDF 转 PNG 命令行工具

用 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
-overwritefalse覆盖已存在的输出目录
-timeout <sec>600单个 PDF 渲染超时时间
-qfalse静默模式

输出结构

output/├── 标题1.pdf的目录/│   ├── page_001.png│   ├── page_002.png│   └── ...└── 标题2/    └── ...

渲染引擎说明

工具不嵌入 PDF 解析库,而是调用成熟的外部渲染引擎:

  1. Poppler(pdftoppm) — 优先使用

  2. Ghostscript — 系统装的 gs / gswin64c.exe

  3. MuPDF — 系统装的 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。

  • 文件名含特殊字符:输出目录名会自动把 :/?*"<>| 替换为 _。

百度网盘源码和exe下载
通过网盘分享的文件: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

回首页,搜索你想要的文档

在首页搜索框输入关键词,快速定位资料

文库首页搜索指引 立即搜索

相关学习资料