将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 的一部分。因此,您很可能必须使用您的发行版包管理器安装一个名为 pdfjam
或 texlive-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】:
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
为 quality
选项使用介于 0 和 100 之间的值。
或者,您可以通过将图像重新采样到特定分辨率来降低文件大小(和质量)。
convert *.png 2.png -resample 300 Result.pdf
resample
的值是指每英寸的像素数。 ImageMagick 从输入图像的 EXIF 部分读取原始密度,回落到 72 dpi。您可以使用density
参数为输入图像设置自定义分辨率。
您当然也可以组合compress
、quality
和resample
参数。
【讨论】:
这里有人知道如何恢复操作吗? 图像文件不会被删除,您可以将它们复制掉以省心。我还有 ***.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文件中[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 php mpdf 库将多个 PDF 文件合并为一个 PDF
用Python+PIL将多个jpg图像批量合并成一个pdf文件