【问题标题】:How can I convert a series of images to a PDF from the command line on linux? [closed]如何从 Linux 上的命令行将一系列图像转换为 PDF? [关闭]
【发布时间】:2012-02-15 20:17:55
【问题描述】:

我有一个我在 cgi/bash 中编写的扫描服务器,并且希望能够从命令行将一堆图像(全部在一个文件夹中)转换为 pdf。怎么可能?

【问题讨论】:

  • 使用 img2pdf,而不是 ImageMagick。 ImageMagick 解码 JPEG,生成generation loss,比 img2pdf 慢 10-100 倍。
  • sudo apt-get install gscan2pdf 简单易用。
  • img2pdf $(find . -iname '*.jpg' | sort -V) -o ./document.pdf 将为您提供document.pdf,其中包含当前目录中所有带有 jpg 或 JPG 扩展名的图像 - 每页一张图像。 document.pdf 将所有图像自然排序为页面(sort 的-V 选项)因此在对图像文件进行编号时无需添加任何前导零。

标签: image bash pdf


【解决方案1】:

使用imagemagick,可以试试:

convert page.png page.pdf

或者对于多张图片:

convert page*.png mydoc.pdf

【讨论】:

  • 如果 page*.png 没有按照您想要的方式对图像进行排序怎么办?例如page_1.png, page_2.png ... page_10.png -> page_10 将出现在 page_1 之前
  • 要对文件进行排序,您可以使用:ls page*.png | sort -n | tr '\n' ' ' | sed 's/$/\ mydoc.pdf/' | xargs convert
  • 仅供参考,您几乎除了显示文件之外,从不需要使用ls 来做任何事情......即不要解析它的输出。 find 是一个更合适的工具。这是一个例子convert $(find -maxdepth 1 -type f -name 'page*.png' | sort -n | paste -sd\ ) output.pdf。请记住,如果您的路径名包含空格,上述命令将不起作用。添加需要转义的字符会使事情变得更复杂。
  • 这个很简单,效果很好,谢谢!为避免生成巨大的 PDF 文件,请使用 convert -compress jpeg -quality 85 *.png out.pdf 之类的内容
  • ImageMagick 解码 JPEG,得到generation loss。请改用img2pdf;它也快 10 到 100 倍。
【解决方案2】:

使用http://www.imagemagick.org 中的convert。 (在大多数 Linux 发行版中都以软件包形式提供。)

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-24
  • 1970-01-01
  • 2019-08-05
  • 1970-01-01
  • 2014-11-24
  • 2011-12-04
  • 1970-01-01
相关资源
最近更新 更多