bash – 将图像目录转换为单个PDF
发布时间:2020-12-16 01:46:53 所属栏目:安全 来源:网络整理
导读:我有一个图像目录: path/to/directory/ image01.jpg image02.jpg ... 并希望将其转换为单个PDF文件: path/to/directory.pdf 这是我到目前为止编写的代码: #!/bin/bashecho Directory $1out=$(echo $1 | sed 's|/$|.pdf|')echo Output $outmkdir tmpfor i
我有一个图像目录:
path/to/directory/ image01.jpg image02.jpg ... 并希望将其转换为单个PDF文件: path/to/directory.pdf 这是我到目前为止编写的代码: #!/bin/bash echo Directory $1 out=$(echo $1 | sed 's|/$|.pdf|') echo Output $out mkdir tmp for i in $(ls $1) do # MAC hates sed with "I" (ignore case) - thanks SO for the perl solution! # I want to match "jpg,JPG,Jpg,..." echo $1$i $(echo "tmp/$i" | perl -C -e 'use utf8;' -pe 's/jpg$/pdf/i') convert $1$i $(echo "tmp/$i" | perl -C -e 'use utf8;' -pe 's/jpg$/pdf/i') done pdftk tmp/*.pdf cat output $out rm -rf tmp 因此,我们的想法是使用imagemagick将每个图像转换为pdf文件,并使用pdftk将其合并为单个文件.感谢文件的命名,我不必为订购而烦恼. 由于我是新手,我确信有很多可以做的改进: >只迭代目录中的图像文件(如果有一些Readme.txt,…) 但是,目前我的主要问题是,有些情况下我的目录和图像文件的名称中包含空格. for循环然后迭代文件名的子字符串,我想有转换的行也将失败. 解决方法
转换可以一次完成:
convert *.[jJ][pP][gG] output.pdf 或者回答您的其他几个问题并替换您的脚本: #!/bin/bash shopt -s nullglob nocaseglob convert "$1"/*.{png,jpg,jpeg} "${1%/}.pdf" 将迭代第一个参数中的所有给定扩展,无论大小写,并写入yourdir.pdf.它不会在空间上破坏. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |