【发布时间】:2013-02-02 03:17:39
【问题描述】:
我有一个图片目录:
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,...)
- 包括扩展名 png、jpeg、...
- 我认为使用尾随“/”并不优雅
- 等
但是,目前我的主要问题是,在某些情况下,我的目录和图像文件的名称中包含空格。然后 for 循环遍历文件名的子字符串,我想带有 convert 的行也会失败。 我已经尝试了一些东西,但到目前为止还没有成功,希望有人能在这里帮助我。 如果有人有想法来解决我上面列出的问题,我也会很高兴听到他们的声音。
【问题讨论】:
标签: bash pdftk imagemagick-convert