将png图像合并到一个pdf文件中


Answers:


149

通过浏览ImageMagick上的文档,它可能很简单:

convert 1.png 2.png myfile.pdf

如果这不起作用,PDFjam声称能够解决您的问题。


5
棒极了。太简单。它会自动调整图像和所有内容的大小。.我喜欢开源。
内森·华莱士

有什么方法可以控制文档的质量或生成的PDF的文件大小?我需要上传一些最大文件大小为2.5 MiB的文档。我尝试使用该-quality选项,但文件大小始终为〜9.5 MiB。
arielnmz 2014年

是否可以将图像文件附加到现有的pdf?
基兰·雷迪

3
使用convert *.jpg file.pdf
haakym

2
@arielnmz,您可以使用参数压缩文件-compress jpeg -quality 50。看到我的答案
Michael Schmid

36

如果要将某些扫描合并到一个PDF文件中,请执行以下操作:

pdfjoin --a4paper --fitpaper false --rotateoversize false scan01.png scan02.png

这样您便可以得到具有DIN-A4页面大小的PDF文档,其中每个png文件都位于其自己的页面上。对于一张DIN-A4页面太大的图像,将按比例调整大小以适合一页。较小的图像不会调整大小(不会变大)。

您必须png在命令行上命名所有文件,但也可以使用通配符来例如合并当前目录中的所有png文件:

pdfjoin --a4paper --fitpaper false --rotateoversize false *.png

pdfjoinJeremiah Willcock的回答所述,该命令是PDFjam的一部分。因此,您很可能必须使用发行版软件包管理器来安装名为pdfjamtexlive-extra-utils的软件包。png自2010年11月13日发布2.07版以来,PDFjam便可以使用文件作为输入。


似乎pdfjoin消失了,现在只有一个叫做pdfunite的工具,它只能将多个PDF文件合并为一个文件...
Gregor

1
@Gregor是什么让您说pdfjoin不见了?
Pascal Rosin

@Pascal_Rosin在Debian和Arch仓库中都找不到……
Gregor

2
pdfjointexlive-extra-utils在某些平台上的软件包中可用。您也可以始终从源代码安装它。
Mahmoud Al-Qudsi'5

10

我喜欢ImageMagick转换工具。

convert程序是ImageMagick工具套件的成员。使用它可以在图像格式之间进行转换,以及调整图像的大小,模糊,裁剪,去斑点,抖动,绘制,翻转,合并,重新采样等等。

convert [input-option] input-file [output-option] output-file`

如果您希望图像文件(以及它们的质量和文件大小)保持不变,只需在它们周围放置一个PDF容器即可:

convert In.png In-2.png Someother-*.png Result.pdf

如果您希望文件较小,并且质量不错,可以先将它们转换为JPEG格式。(ImageMagick还支持更改PNG压缩级别,但是通常您的输入文件已经使用了最高级别。)

convert 1.png 2.png -compress jpeg -quality 50 Result.pdf

使用0到100之间的值作为quality选项。

或者,可以通过将图像重新采样到特定分辨率来达到较小的文件大小(和质量)。

convert *.png 2.png -resample 300 Result.pdf

的值是resample指每英寸的像素数。ImageMagick从输入图像的EXIF部分读取原始浓度,降至72 dpi。您可以使用该density参数为输入图像设置自定义分辨率。

您可以当然也结合compressqualityresample参数。


这里有人知道如何还原操作吗?
安德烈·乔亚拉

图像文件不会被删除,但是您可以放心复制它们。在工作之前,我还遇到了stackoverflow.com/questions/42928765/…问题需要解决。
奥德里斯·梅斯卡斯卡斯

任何人都发现将图像转换为pdf的问题,并看到说“不允许转换”的错误,请检查以下答案:askubuntu.com/questions/1127260/imagemagick-convert-not-allowed
Tuhin

最近imagemagick默认拒绝PDF转换。如果遇到此问题,请参阅此问题,以便您知道如何更改此政策。stackoverflow.com/questions/52998331/...
user2565010

5

我偷了这个,但这是我从耶利米·威尔考克和另一个答案网站使用的解决方案。目前不挖掘历史。我撒谎,我做到了。(完全是@ https://askubuntu.com/a/626301
我需要一个足够小的文件来发送电子邮件。

要将图像合并为PDF(从工作目录中,使用命令行:

user@box:/home/user/scans/:$ 
convert 1.png 2.png convertoutput.pdf

合并后使用ghostscript缩小(我几乎在kde默认系统上使用过):

gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/default \
   -dNOPAUSE -dQUIET -dBATCH -dDetectDuplicateImages -dCompressFonts=true \
   -r150 -sOutputFile=output.pdf convertoutput.pdf

我的文件有14张图片(转换后为19MB,gs为1.6MB,质量还是不错的)。输出文件称为output.pdf


您可以使用参数使用convert直接压缩文件-compress jpeg -quality 50。看看我的回答
Michael Schmid

@MichaelSchmid用convert进行的压缩效果不佳。它只会降低jpeg的质量,而gs解决方案会更改分辨率。如果您尝试使用高分辨率图像,即使您选择的jpg质量非常低,您也会看到大小差异有多大。

是的,重采样可能确实比JPEG压缩更有效。而且ImageMagick也支持这一点。我在答案中添加了该选项。
Michael Schmid
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.