如何从linux上的命令行将一系列图像转换为PDF?

Jak*_*lat 200 pdf bash image

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

Mar*_*nto 394

使用imagemagick,您可以尝试:

convert page.png page.pdf
Run Code Online (Sandbox Code Playgroud)

或者对于多个图像:

convert page*.png mydoc.pdf
Run Code Online (Sandbox Code Playgroud)

  • 要对文件进行排序,可以使用:`ls page*.png | sort -n | tr'\n'''| sed's/$ /\mydoc.pdf /'| xargs convert` (36认同)
  • 对于除了显示文件之外的任何东西,你几乎*永远不需要使用`ls` ...即不解析它的输出.`find`是一个更合适的工具.下面是一个例子`convert $(find -maxdepth 1 -type f -name'page*.png'| sort -n | paste -sd \)output.pdf`.请记住,如果您的路径名包含空格,则上述命令将不起作用.添加需要转义的字符会使事情变得复杂一些. (24认同)
  • 这很简单,效果很好,谢谢!为了避免生成巨大的PDF文件,请使用类似`convert -compress jpeg -quality 85*.png out.pdf`的内容. (18认同)
  • ImageMagick解码JPEG,导致[世代丢失](https://en.wikipedia.org/wiki/Generation_loss).请改用[img2pdf](https://github.com/josch/img2pdf); 它也快10到100倍. (8认同)
  • 如果page*.png没有按照你想要的方式对图像进行排序怎么办?例如page_1.png,page_2.png ... page_10.png - > page_10将出现在page_1之前 (6认同)
  • 我得到了“PDF”@ error/constitute.c/IsCoderAuthorized/408。 (5认同)

zie*_*mer 11

使用converthttp://www.imagemagick.org.(在大多数Linux发行版中随时提供.)

  • ImageMagick解码JPEG,导致[世代丢失](https://en.wikipedia.org/wiki/Generation_loss).请改用[img2pdf](https://github.com/josch/img2pdf); 它也快10到100倍. (25认同)
  • 注意:img2pdf已移至https://gitlab.mister-muffin.de/josch/img2pdf。 (5认同)
  • 安装:`sudo apt update && sudo apt install img2pdf` (3认同)