Linux shell脚本,jpg文件批量化转pdf

出于论文的需要,我要把jpg文件全部转成pdf的格式以后再嵌入到最后的pdf中。

ubuntu中可以用convert命令对图像的格式和大小等进行转换(convert命令可以用在脚本中),但是convert不是ubuntu自带的命令,需要先安装ImageMagick,之后才可以使用。

安装命令

sudo  apt-get install imagemagick  

测试是否安装成功
首先查看版本,命令:

convert -version

可以看到输出:

Version: ImageMagick 6.8.9-9 Q16 x86_64 2015-08-06 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2014 ImageMagick Studio LLC
Features: DPC Modules OpenMP
Delegates: bzlib djvu fftw fontconfig freetype jbig jng jpeg lcms lqr ltdl lzma openexr pangocairo png tiff wmf x xml zlib

现在我们可以直接利用convert进行图像格式的转化(同时还可以做缩放、剪切、模糊、反转等操作。)

  1. 当我们需要对某张图片应用格式转化时:

    convert a.jpg a.pdf
  2. 如果要想把目录下所有的jpg文件都转化为pdf,我们可借助于shell的强大功能:

      find *.jpg -exec convert {} {}.pdf \;

    转化后的pdf名称为 *.jpg.pdf ,这样看起来不太自然,但并不影响使用。

     当然,到这里其实我们再做一步rename也是可以修改这种奇怪的后缀的。

      rename -v 's/.jpg.pdf/.pdf/' *.jpg.pdf 

我本来是想在exec的时候,对获取到的文件名做截取,这样就不会形成.jpg.gif这种丑陋的名子了,但一只没有成功。
最后借助shell script来完成上述的操作:

#!/bin/bash
for jpgName in ./*.jpg;do
convert "$jpgName" ${jpgName%.*}.pdf
done

你可能感兴趣的:(shell,Linux)