我使用以下命令将目录中的所有 JPG 文件转换并合并为单个 PDF 文件:
convert *.jpg file.pdf
目录中的文件编号从 1.jpg
到 123.jpg
。转换很顺利,但转换后,页面都混在一起了。我希望 PDF 具有从 1.jpg
到 123.jpg
的页面,其顺序与它们命名的顺序相同。我也使用以下命令进行了尝试:
cd 1
FILES=$( find . -type f -name "*jpg" | cut -d/ -f 2)
mkdir temp && cd temp
for file in $FILES; do
BASE=$(echo $file | sed 's/.jpg//g');
convert ../$BASE.jpg $BASE.pdf;
done &&
pdftk *pdf cat output ../1.pdf &&
cd ..
rm -rf temp
但仍然没有运气。操作系统是Linux。
原文由 Harikrishnan 发布,翻译遵循 CC BY-SA 4.0 许可协议
问题是因为您的 shell 以纯字母顺序扩展通配符,并且由于数字的长度不同,因此顺序将不正确:
解决方案是根据需要用零填充文件名,以便在运行转换命令之前它们的长度相同:
现在文件将以正确的顺序与通配符匹配,为转换命令做好准备: