pdf-to-images · git:20260509.e0ce9ca · 2026-05-09 · sha256 8e15c6759d0c2a32
pdf-to-images git:20260509.e0ce9caA
Immutable. This exact content is served forever at /api/v1/blob/8e15c6759d0c2a32.
--- name: pdf-to-images description: "当需要用系统级 Ghostscript 将 PDF 页面导出为 PNG 图片,支持单页、页码范围或整篇导出时使用。" --- # PDF 转图片 ## 核心原则 - 使用系统级 Ghostscript (`gs`)。 - 输出图片放到明确的预览目录,不要和源文件目录混在一起。 - 不要长期把输出放在 `/tmp`,避免环境清理后结果丢失。 - 按需设置页码范围,避免不必要地导出整篇 PDF。 ## 安装 Debian/Ubuntu: ```bash apt-get update DEBIAN_FRONTEND=noninteractive apt-get install -y ghostscript apt-get clean ``` 检查: ```bash gs --version ``` ## 导出单页或页码范围 创建输出目录: ```bash mkdir -p /path/to/project/pdf_pages_png ``` 导出第 1 页: ```bash gs -q -dSAFER -dBATCH -dNOPAUSE \ -sDEVICE=pngalpha \ -r180 \ -dFirstPage=1 \ -dLastPage=1 \ -sOutputFile=/path/to/project/pdf_pages_png/page_%03d.png \ /path/to/project/main.pdf ``` 导出第 3 到第 5 页: ```bash gs -q -dSAFER -dBATCH -dNOPAUSE \ -sDEVICE=pngalpha \ -r180 \ -dFirstPage=3 \ -dLastPage=5 \ -sOutputFile=/path/to/project/pdf_pages_png/page_%03d.png \ /path/to/project/main.pdf ``` 导出整篇 PDF 时去掉 `-dFirstPage` 和 `-dLastPage`。 ## 参数要点 - `-sDEVICE=pngalpha`:输出带 alpha 通道的 PNG。 - `-r180`:180 DPI,清晰度和文件大小较平衡。 - `-r120`:快速预览。 - `-r300`:高质量截图或打印级预览。 - `-sOutputFile=.../page_%03d.png`:输出文件模板。 ## 常见问题 - `gs: command not found`:安装 `ghostscript`。 - 图片太模糊:提高 DPI,例如 `-r300`。 - 图片太大:降低 DPI,例如 `-r120`,或只导出需要的页码范围。 - 输出文件页码不符合预期:`page_%03d.png` 通常从导出的第一页开始编号,不一定等于原 PDF 页码。 ## 验证 导出后检查: ```bash ls -lh /path/to/project/pdf_pages_png ``` 确认图片数量符合页码范围、能正常打开,文本/公式/表格/图片清晰,且没有误输出到源码目录或临时目录。