如何在终端/命令行中把PDF的每一页转换成图片(PNG)
今天被对象安排了一个任务:
之前自己其实也有这个需要,但是吧,我懒:量少拖拽,量大就放弃。但这次躲不过去了,所以研究了一下有什么工具可以做到这个需求。
本文记录我这次发现的使用 XpdfReader 的方法。因为虽然之前偷懒的方法不用额外安装软件,但是太麻烦了,而且这个方法只能在 Mac 上用,不方便。
安装XpdfReader
首先下载和安装 XpdfReader,有两种途径:Homebrew 和官网下载。
Homebrew 就直接brew install xpdf
。
或者在 XpdfReader 官网 就可以找到:
由于 Mac 上只有 CLI 版本,所以这里使用 CLI 版本演示。
下载解压后内容如下:
binARM
和bin64
分别针对 ARM 和 X86 架构的可执行文件,内容如下:
我们要用的是这里的pdftopng
,可以将 PDF 转换成 PNG。
如果你不熟悉终端/命令行,那么请看我的另外两篇博客,这里不再多说了。
macOS在终端上如何直接使用脚本或者下载的程序
Linux——如何直接使用脚本(配置$PATH变量中包含的所有bin目录)
如何使用
这里使用pdftopng
,命令很简单,下面是我使用的:
% pdftopng -r 300 -verbose 1.pdf 贴纸
[processing page 1]
[processing page 2]
[processing page 3]
[processing page 4]
[processing page 5]
[processing page 6]
[processing page 7]
[processing page 8]
[processing page 9]
这里的选项含义如下:
-r 300
:DPI,默认是 150。由于我对象要打印贴纸,所以我设置的比较高。-verbose
:是为了显示处理了那些,就是下面的[processing page 1]
这些内容,没这个选项就不打印这些。1.pdf
:是转换的 PDF 文件。贴纸
:这里的选项是生成文件的前缀,比如生成的 PNG 文件名如下(后面的序号是取决于页号):
所以如果你不想看到/不需要当前处理信息,也不需要设置 DPI,那么直接下面这样的命令就行:
% pdftopng 1.pdf 贴纸
这也是最简命令了。
希望能帮到有需要的人~