我正在尝试从bash的同一文件夹中的一组图像文件中构建pdf
。到目前为止,我已经有了这段代码:
ls *.jpg | sort > files.txt
ls *.jpg | sort | tr '\n' ' ' | sed 's/$/\ data_graphs.pdf/' | xargs convert -gravity North -annotate @files.txt
rm files.txt
此代码折叠图像,但它们没有正确排序,并且每个图像(列表中的第一个)的注释都相同。
以下是ls * jpg |sort
输出供参考。
$ ls *.jpg | sort
01.20.2014_A549_void.jpg
01.20.2014_EPOR_full_sorter.jpg
01.20.2014_EPOR_trunc_sorter.jpg
01.20.2014_WTGFP_sorter.jpg
01.27.2014_A549_void.jpg
01.27.2014_EPOR_full_I10412.jpg
01.27.2014_EPOR_full_sorter.jpg
01.27.2014_EPOR_trunc_I10412.jpg
01.27.2014_EPOR_trunc_sorter.jpg
01.27.2014_WTGFP_I10412.jpg
01.27.2014_WTGFP_sorter.jpg
02.03.2014_A549_void.jpg
02.03.2014_EPOR_full_sorter.jpg
02.03.2014_EPOR_trunc_sorter.jpg
02.03.2014_WTGFP_sorter.jpg
答案 0 :(得分:1)
这个怎么样,不需要生成临时文件files.txt
convert -gravity North -annotate `ls *.jpg | sort -t . -k3.3n -k1.1n -k2.2n ` data_graphs.pdf
根据评论,这些jpg文件在文件名(MM-DD-YYYY)中有时间戳,我更新了sort命令。
下面的脚本会将jpg文件逐个转换为pdf
for file in *jpg
do
convert -gravity North -annotate "$file" "$file".pdf
done
然后运行pdftk命令,如果你有多个pdf。使用pdftk,您可以将每个10~20合并为一个小pdf,然后将小pdf合并到最终pdf。例如:
pdftk 1.pdf 2.pdf 3.pdf output m1.pdf
然后你将获得mXXX.pdf文件,然后再次运行pdftk:
pdftk m1.pdf m2.pdf m3.pdf output final.pdf