1. Inkscape

Inkscape 作为一款强大的矢量设计软件,也能用来将 PDF 文件转为图片,主要用于在转换为图片时对原 PDF 页面进行一定调整。

【注】Inkscape 有个缺点,即每次只能处理一个 PDF 页面,不能同时将整个 PDF 文档导入 Inkscape

1.1 GUI 操作

Inkscape 可以直接打开 PDF 的页面进行操作,然后可以导出成各种格式的图片。有关 Inkscape GUI 操作教程可以参见官方资料以及 Youtube 视频教程

1.2 终端操作

1
2
inkscape --export-type="svg" --export-filename="output" --pdf-page=1 input.pdf       # 指定 PDF 页面导出 svg 图片
inkscape --export-type="png" --export-filename="output" --pdf-page=1 input.pdf # 指定 PDF 页面导出 png 图片

其中,如果 --pdf-page 参数未指定,则默认处理 PDF 首页。inkscape 命令还可以指定导出图片的长宽等参数,详细参数参见官方文档

2. Ghostscript

Ghostscript 是一款 PDF 文件和 PostScript 编程语言之间的转换器,安装了 Ghostscript 的 Linux 发行版都会有 gs 命令。gs 命令可以用来操作图片和 PDF 文件之间的转换,使用 gs 命令将整个 PDF 转为一系列图片的命令如下:

1
2
gs -sDEVICE=pngalpha -o output-%03d.png input.pdf   # 转换为 png 图片
gs -sDEVICE=jpeg -o output-%03d.png input.pdf # 转换为 jpg 图片

其中,-sDEVICE 参数指定了转换引擎,Ghostscript 提供了很多转换引擎,更详细的参数参见 gs -h

【注】Ghostscript 并没有提供 PDF 文件和 svg 图片之间的转换引擎,因此 gs 命令不支持将 PDF 文件转为 svg 图片。

3. Xpdf

Xpdf 是一款 PDF 阅读器,但它也带有 pdftopng 工具,因此可以使用该工具来将 PDF 转为 png 图片:

1
pdftopng -alpha -f <sn> -l <en> intput.pdf output

其中,-alpha 表明输出的 png 图片具有 Alpha 通道,-f 选项后接起始页号 <sn>-l 选项后接终止页号 <en>。最终输出的 png 图片名会在 output 自动接上数字序号。

4. Poppler

Poppler 是一个基于 Xpdf 的 PDF 渲染库,如果你的 Linux 发行版上没有该命令,需要安装 poppler-utils(Debian 系)或 poppler(Arch 系)软件。它提供了 pdftoppm 工具用于将 PDF 转换为图片:

1
2
pdftoppm -png -f <sn> -l <en> input.pdf output      # 转换为 png 图片
pdftoppm -jpeg -f <sn> -l <en> input.pdf output # 转换为 jpg 图片

其中,-f-l 参数和上文 pdftopng 的含义一致,output 为输出的图片文件前缀。

【注】pdftoppm 工具转换成的 png 图片没有 Alpha 通道。