Linux下PDF转图片

2022-02-28 20:06:13 浏览数 (1)

1. Inkscape

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

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

1.1 GUI 操作

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

1.2 终端操作

代码语言:javascript复制
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 转为一系列图片的命令如下:

代码语言:javascript复制
gs -sDEVICE=pngalpha -o output-d.png input.pdf   # 转换为 png 图片
gs -sDEVICE=jpeg -o output-d.png input.pdf       # 转换为 jpg 图片

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

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

3. Xpdf

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

代码语言:javascript复制
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 转换为图片:

代码语言:javascript复制
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 通道。

0 人点赞