将png图像合并到一个pdf文件中[关闭]

Posted

技术标签:

【中文标题】将png图像合并到一个pdf文件中[关闭]【英文标题】:Merging png images into one pdf file [closed] 【发布时间】:2011-06-14 07:10:46 【问题描述】:

如何在 Unix 中将多个 .png 文件合并为一个 PDF 文件?

【问题讨论】:

【参考方案1】:

通过查看 ImageMagick 上的文档,可能很简单:

convert 1.png 2.png myfile.pdf

请参阅 cmets 了解可能的风险。如果这不起作用,PDFjam 声称能够解决您的问题。

【讨论】:

太棒了。太简单。它会自动调整图像和所有内容的大小。我喜欢开源。 有没有办法控制文档的质量或生成的 PDF 的文件大小?我需要上传一些最大文件大小为 2.5 MiB 的文档。我尝试过使用 -quality 选项,但文件大小始终为 ~9.5 MiB。 是否可以将图像文件附加到现有的 pdf 中? 使用convert *.jpg file.pdf转换指定类型文件夹中的所有文件 @arielnmz,可以使用参数-compress jpeg -quality 50压缩文件。见my answer【参考方案2】:

如果我想将一些扫描合并到一个 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

pdfjoin 命令是 Jeremiah Willcock 的回答中提到的 PDFjam 的一部分。因此,您很可能必须使用您的发行版包管理器安装一个名为 pdfjamtexlive-extra-utils 的包。自 2010 年 11 月 13 日发布的版本 2.07 起,PDFjam 能够使用 png 文件作为输入。

【讨论】:

似乎 pdfjoin 不见了,现在只有一个名为 pdfunite 的不同工具,它只能将几个 PDF 文件合并为一个... @Gregor 是什么让你说 pdfjoin 消失了? @Pascal_Rosin 在 Debian 和 Arch 存储库中都找不到它... pdfjoin 在某些平台上的 texlive-extra-utils 包中可用。您也可以随时从源代码安装它。 在 Ubuntu 上 - 没有 pdfjoin,但您可以使用 pdfjam 来实现。它采用相同的参数【参考方案3】:

ImageMagickconvert 工具是我的首选。

转换程序是 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

quality 选项使用介于 0 和 100 之间的值。

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

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

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

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

【讨论】:

这里有人知道如何恢复操作吗? 图像文件不会被删除,您可以将它们复制掉以省心。我还有 ***.com/questions/42928765/… 问题在它起作用之前要解决。 任何人发现将图像转换为 pdf 的问题并看到错误提示“不允许转换”,请查看此答案:askubuntu.com/questions/1127260/imagemagick-convert-not-allowed 最近imagemagick默认拒绝PDF转换。如果您遇到此问题,请参阅此问题,以便了解如何更改此政策。 ***.com/questions/52998331/… 如何定义 PDF 版本?【参考方案4】:

我偷了这个,但这是我从 Jeremiah Willcock 和另一个答案网站使用的解决方案。暂时不去挖掘历史。我撒谎了,我做到了。 (塔莉@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。见my answer @MichaelSchmid 使用转换的压缩效果不那么好。它只会降低 jpeg 质量,而 gs 解决方案会改变分辨率。如果您尝试使用高分辨率图像,即使您选择极低的 jpg 质量,您也会看到大小差异有多大。 是的,重采样确实可能比 JPEG 压缩更有效。 ImageMagick 也支持这一点。我已在答案中添加了该选项。

以上是关于将png图像合并到一个pdf文件中[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

为从 PDF 转换为 PNG 的图像创建 zip 文件

如何使用 php mpdf 库将多个 PDF 文件合并为一个 PDF

用Python+PIL将多个jpg图像批量合并成一个pdf文件

将 s-s-rS 报告导出为 PDF 格式时出现 png 图像问题

将列表中的多个图像合并为 PDF

如何减小pdf中png图像的大小(压缩pdf中的png)