如何在Linux中使用命令行将PDF转换为JPG?[关闭]

eit6fx6z  于 2023-04-11  发布在  Linux
关注(0)|答案(4)|浏览(170)

**已关闭。**此问题不符合Stack Overflow guidelines。当前不接受答案。

此问题似乎与a specific programming problem, a software algorithm, or software tools primarily used by programmers无关。如果您认为此问题与another Stack Exchange site主题相关,您可以留下评论以解释在何处可以回答此问题。
两年前关闭。
社区去年审查了是否重新打开这个问题,并将其关闭:
原始关闭原因未解决
Improve this question
在Linux上使用命令行将PDF转换为(单个)JPEG有哪些快速可靠的方法?

pbwdgjma

pbwdgjma1#

在我的生活中,在过去的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日更新:**here is the fix for imagemagick**所以convert可以工作。也可以在这里看到我的评论,以及我的评论under this answer here。我仍然喜欢下面的pdftoppm,但是要好得多。)
然后,我想起了我使用和写过的另一个工具,所以我在谷歌上搜索“linux convert pdf to jpg Gabriel Staples”,点击第一个点击,然后向下滚动到我的答案。下面是对我来说非常好的东西。这是基本的命令格式:

好命令--用这个代替:

# GOOD cmd
pdftoppm -jpeg -r 300 input.pdf output
  • 注意:在Linux Ubuntu上,您可能需要执行sudo apt update && sudo apt install poppler-utils才能安装pdftoppm。谢谢,@Reynadan。*

-jpeg将输出图像格式设置为JPG,-r 300将输出图像分辨率设置为300 DPI,单词output将是所有图像页面的前缀,这些页面将被编号并放置到您正在工作的当前目录中。然而,在我看来,更好的方法是首先使用mkdir -p images创建一个“图像”目录,然后将输出设置为images/pg,以便所有输出图像都将干净地放置到您刚刚创建的images目录中,并在每个编号前添加文件前缀pg
以下是我最喜欢的命令:
1.[每一页生成约1 MB大小的文件]以**.jpg**格式输出,300 DPI

mkdir -p images && pdftoppm -jpeg -r 300 mypdf.pdf images/pg

1.[每一页产生约2 MB大小的文件]以**.jpg格式输出,最高质量(最小压缩)且仍为300 DPI**:

mkdir -p images && pdftoppm -jpeg -jpegopt quality=100 -r 300 mypdf.pdf images/pg

1.如果您需要更高的分辨率,可以尝试600 DPI:

mkdir -p images && pdftoppm -jpeg -r 600 mypdf.pdf images/pg

1....或1200 DPI:

mkdir -p images && pdftoppm -jpeg -r 1200 mypdf.pdf images/pg

有关更多详细信息和选项,请参阅以下参考资料。

参考资料:

1.[我的答案]转换PDF到高分辨率的图像
1.[我的答案]https://askubuntu.com/questions/150100/extracting-embedded-images-from-a-pdf/1187844#1187844
关键词:ubuntu linux转换pdf为图像;pdf转jpegptdf到tiff;pdf2images;pdf2tiff; pdftoppm;pdftoimages;pdftotiff; pdftopng;pdf2png

qq24tv8q

qq24tv8q2#

您可以尝试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
wtzytmuj

wtzytmuj3#

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

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倍,至少在这个测试中需要一半的内存。

ffscu2ro

ffscu2ro4#

imagemagick转换似乎做得很好:

convert file.pdf test.jpg

如果生成了多个文件:

convert test-0.jpg -append test-1.jpg ... -append one.jpg

以生成单个文件,其中所有页面都是串联的。

相关问题