如何在 Linux 中使用命令行将 PDF 转换为 JPG?
How to convert a PDF into JPG with command line in Linux?
在 Linux 上使用命令行将 PDF 转换为(单个)JPEG 的快速可靠方法有哪些?
您可以尝试 ImageMagick 的 convert
实用程序。
在 Ubuntu 上,您可以使用此命令安装它:
$ sudo apt-get install imagemagick
像这样使用convert
:
$ convert input.pdf output.jpg
# For good quality use these parameters
$ convert -density 300 -quality 100 in.pdf out.jpg
从 imagemagick
转换似乎做得很好:
convert file.pdf test.jpg
如果生成了多个文件:
convert test-0.jpg --append test-1.jpg ... --append one.jpg
生成单个文件,其中所有页面连接在一起。
对于我来说,在过去的 5 年里,我无法让 imagemagick 始终如一地(如果有的话)为我工作,我不知道为什么人们不断地一次又一次地推荐它。我今天刚刚在谷歌上搜索了如何将 PDF 转换为 JPEG,找到了这个答案,并尝试了 convert
,但它对我来说根本不起作用:
损坏的命令(对我不起作用):
# BROKEN cmd
$ 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.
(2022 年 2 月 24 日更新: so convert
will work. See also , and my comments under this answer here。我仍然喜欢下面的 pdftoppm
,但是好多了。)
然后,我记得我使用并写过另一个工具,所以我用谷歌搜索“linux convert pdf to jpg Gabriel Staples”,点击第一个匹配项,然后向下滚动到我的答案。这对我来说是完美的。这是基本的命令格式:
好的命令——改用这个:
# GOOD cmd
pdftoppm -jpeg -r 300 input.pdf output
-jpeg
设置输出图片格式为JPG,-r 300
设置输出图片分辨率为300DPI,单词output
将作为图片所有页面的前缀,它将被编号并放入您当前工作的目录中。但是,在我看来,更好的方法是先使用 mkdir -p images
创建一个“图像”目录,然后将输出设置为 images/pg
这样所有输出图像都将干净地放入您刚刚创建的 images
目录中,每个数字前面都有文件前缀 pg
。
因此,这是我最喜欢的命令:
[每页生成约 1MB 大小的文件] 在 300 DPI 下以 .jpg 格式输出:
mkdir -p images && pdftoppm -jpeg -r 300 mypdf.pdf images/pg
[每页生成约 2MB 大小的文件] 以 .jpg 格式输出 最高质量(最小压缩) 并且仍然是 300 DPI:
mkdir -p images && pdftoppm -jpeg -jpegopt quality=100 -r 300 mypdf.pdf images/pg
如果需要更高的分辨率,可以试试600DPI:
mkdir -p images && pdftoppm -jpeg -r 600 mypdf.pdf images/pg
...或 1200 DPI:
mkdir -p images && pdftoppm -jpeg -r 1200 mypdf.pdf images/pg
有关更多详细信息和选项,请参阅下面的参考资料。
参考文献:
- [我的回答]Convert PDF to image with high resolution
- [我的回答]https://askubuntu.com/questions/150100/extracting-embedded-images-from-a-pdf/1187844#1187844
关键字:ubuntu linux pdf转图片; pdf转jpeg; ptdf 转 tiff; pdf2图像; pdf2tiff; pdftoppm; pdf转图像; pdftotif; pdftopng; pdf2png
libvips 可以快速转换PDF -> JPEG。大多数 linux 发行版都有它,它在 macOS 上是自制软件,您可以从 libvips 站点下载 windows 二进制文件。
这将以默认 DPI (72) 将 PDF 呈现为 JPG:
vips copy somefile.pdf somefile.jpg
您可以使用 dpi 选项设置一些其他渲染分辨率,例如:
vips copy somefile.pdf[dpi=600] somefile.jpg
您可以这样挑选页面:
vips copy somefile.pdf[dpi=600,page=12] somefile.jpg
或者像这样从第三页开始渲染五个页面:
vips copy somefile.pdf[dpi=600,page=3,n=5] somefile.jpg
docs for pdfload有所有选项。
有了this benchmark image,我看到:
$ /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
所以 libvips 大约快 4 倍并且需要一半的内存,至少在这个测试中是这样。
在 Linux 上使用命令行将 PDF 转换为(单个)JPEG 的快速可靠方法有哪些?
您可以尝试 ImageMagick 的 convert
实用程序。
在 Ubuntu 上,您可以使用此命令安装它:
$ sudo apt-get install imagemagick
像这样使用convert
:
$ convert input.pdf output.jpg
# For good quality use these parameters
$ convert -density 300 -quality 100 in.pdf out.jpg
从 imagemagick
转换似乎做得很好:
convert file.pdf test.jpg
如果生成了多个文件:
convert test-0.jpg --append test-1.jpg ... --append one.jpg
生成单个文件,其中所有页面连接在一起。
对于我来说,在过去的 5 年里,我无法让 imagemagick 始终如一地(如果有的话)为我工作,我不知道为什么人们不断地一次又一次地推荐它。我今天刚刚在谷歌上搜索了如何将 PDF 转换为 JPEG,找到了这个答案,并尝试了 convert
,但它对我来说根本不起作用:
损坏的命令(对我不起作用):
# BROKEN cmd
$ 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.
(2022 年 2 月 24 日更新:convert
will work. See also pdftoppm
,但是好多了。)
然后,我记得我使用并写过另一个工具,所以我用谷歌搜索“linux convert pdf to jpg Gabriel Staples”,点击第一个匹配项,然后向下滚动到我的答案。这对我来说是完美的。这是基本的命令格式:
好的命令——改用这个:
# GOOD cmd
pdftoppm -jpeg -r 300 input.pdf output
-jpeg
设置输出图片格式为JPG,-r 300
设置输出图片分辨率为300DPI,单词output
将作为图片所有页面的前缀,它将被编号并放入您当前工作的目录中。但是,在我看来,更好的方法是先使用 mkdir -p images
创建一个“图像”目录,然后将输出设置为 images/pg
这样所有输出图像都将干净地放入您刚刚创建的 images
目录中,每个数字前面都有文件前缀 pg
。
因此,这是我最喜欢的命令:
[每页生成约 1MB 大小的文件] 在 300 DPI 下以 .jpg 格式输出:
mkdir -p images && pdftoppm -jpeg -r 300 mypdf.pdf images/pg
[每页生成约 2MB 大小的文件] 以 .jpg 格式输出 最高质量(最小压缩) 并且仍然是 300 DPI:
mkdir -p images && pdftoppm -jpeg -jpegopt quality=100 -r 300 mypdf.pdf images/pg
如果需要更高的分辨率,可以试试600DPI:
mkdir -p images && pdftoppm -jpeg -r 600 mypdf.pdf images/pg
...或 1200 DPI:
mkdir -p images && pdftoppm -jpeg -r 1200 mypdf.pdf images/pg
有关更多详细信息和选项,请参阅下面的参考资料。
参考文献:
- [我的回答]Convert PDF to image with high resolution
- [我的回答]https://askubuntu.com/questions/150100/extracting-embedded-images-from-a-pdf/1187844#1187844
关键字:ubuntu linux pdf转图片; pdf转jpeg; ptdf 转 tiff; pdf2图像; pdf2tiff; pdftoppm; pdf转图像; pdftotif; pdftopng; pdf2png
libvips 可以快速转换PDF -> JPEG。大多数 linux 发行版都有它,它在 macOS 上是自制软件,您可以从 libvips 站点下载 windows 二进制文件。
这将以默认 DPI (72) 将 PDF 呈现为 JPG:
vips copy somefile.pdf somefile.jpg
您可以使用 dpi 选项设置一些其他渲染分辨率,例如:
vips copy somefile.pdf[dpi=600] somefile.jpg
您可以这样挑选页面:
vips copy somefile.pdf[dpi=600,page=12] somefile.jpg
或者像这样从第三页开始渲染五个页面:
vips copy somefile.pdf[dpi=600,page=3,n=5] somefile.jpg
docs for pdfload有所有选项。
有了this benchmark image,我看到:
$ /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
所以 libvips 大约快 4 倍并且需要一半的内存,至少在这个测试中是这样。