Gab*_*les 31
在我的一生中,在过去的 5 年里,我无法让imagemagick始终如一地为我工作(如果有的话),我不知道为什么人们不断地一次又一次地推荐它。我今天刚刚在谷歌上搜索了如何将 PDF 转换为 JPEG,找到了这个答案,并尝试了convert,但它对我来说根本不起作用:
Run Code Online (Sandbox Code Playgroud)$ convert in.pdf out.jpg convert-im6.q16: not authorized `in.pdf' @ error/constitute.c/ReadImage/412. convert-im6.q16: no images defined `out.jpg' @ error/convert.c/ConvertImageCommand/3258.
然后,我想起了我使用并写过的另一个工具,所以我用谷歌搜索“ linux convert pdf to jpg Gabriel Staples ”,点击第一个点击,然后向下滚动到我的答案。这是对我来说完美的方法。这是基本的命令格式:
pdftoppm -jpeg -r 300 input.pdf output
Run Code Online (Sandbox Code Playgroud)
在-jpeg将输出图像格式为JPG,-r 300设置输出的图像分辨率为300 DPI,字output将前缀为图像的所有页面,将被编号并放置到你。一个更好的方式工作当前目录,然而,在我看来,是首先使用mkdir -p images创建一个“图像”目录,然后将输出设置为,images/pg以便所有输出图像都将干净地放入images您刚刚创建的目录pg中,每个数字前面都有文件前缀.
因此,这里是我最喜欢的命令:
[每页产生约 1MB 大小的文件] 以.jpg格式以300 DPI输出:
mkdir -p images && pdftoppm -jpeg -r 300 mypdf.pdf images/pg
Run Code Online (Sandbox Code Playgroud)
[每页生成约 2MB 大小的文件] 以.jpg格式以最高质量(最少压缩)和300 DPI 输出:
mkdir -p images && pdftoppm -jpeg -jpegopt quality=100 -r 300 mypdf.pdf images/pg
Run Code Online (Sandbox Code Playgroud)
如果您需要更高的分辨率,可以尝试 600 DPI:
mkdir -p images && pdftoppm -jpeg -r 600 mypdf.pdf images/pg
Run Code Online (Sandbox Code Playgroud)
...或 1200 DPI:
mkdir -p images && pdftoppm -jpeg -r 1200 mypdf.pdf images/pg
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息和选项,请参阅下面的参考资料。
关键词:ubuntu linux pdf转图片;pdf转jpeg;ptdf 到 tiff; pdf2图像;pdf2tiff; pdftoppm; pdftoimages; pdftotiff; pdftopng; pdf2png
Sör*_*ren 12
转换自imagemagick似乎做得很好:
convert file.pdf test.jpg
Run Code Online (Sandbox Code Playgroud)
如果生成了多个文件:
convert test-0.jpg -append test-1.jpg ... -append one.jpg
Run Code Online (Sandbox Code Playgroud)
生成一个文件,其中所有页面都连接在一起。
小智 10
您可以尝试 imagemagick存储库然后convert实用程序:
$ sudo apt-get install imagemagick
$ convert input.pdf output.jpg
Run Code Online (Sandbox Code Playgroud)
另外,其他语法依赖于linux发行版.
libvips可以快速转换 PDF -> JPEG。它随大多数 linux 发行版一起提供,它是 macos 上的自制软件,您可以从 libvips 站点下载 Windows 二进制文件。
这将以默认 DPI (72) 将 PDF 呈现为 JPG:
vips copy somefile.pdf somefile.jpg
Run Code Online (Sandbox Code Playgroud)
您可以使用 dpi 选项设置一些其他渲染分辨率,例如:
vips copy somefile.pdf[dpi=600] somefile.jpg
Run Code Online (Sandbox Code Playgroud)
您可以选择这样的页面:
vips copy somefile.pdf[dpi=600,page=12] somefile.jpg
Run Code Online (Sandbox Code Playgroud)
或者像这样从第三页开始渲染五个页面:
vips copy somefile.pdf[dpi=600,page=3,n=5] somefile.jpg
Run Code Online (Sandbox Code Playgroud)
有了这个基准图像,我看到:
$ /usr/bin/time -f %M:%e convert -density 300 r8.pdf[3] x.jpg
276220:2.17
$ /usr/bin/time -f %M:%e pdftoppm -jpeg -r 300 -f 3 -l 3 r8.pdf x.jpg
91160:1.24
$ /usr/bin/time -f %M:%e vips copy r8.pdf[page=3,dpi=300] x.jpg
149572:0.53
Run Code Online (Sandbox Code Playgroud)
所以 libvips 大约快 4 倍,并且需要一半的内存,至少在这个测试中是这样。