img2pdf如何给出文件范围

时间:2017-05-27 09:34:34

标签: bash image-processing

我在bash脚本中使用 img2pdf 。该脚本在目录中计算jpg文件的数量(按升序编号),并使用img2pdf转换为pdf

numjpg=$(ls -l *.jpg | wc -l)

img2pdf --output my.pdf {1..$numjpg}.jpg

但上面的代码会产生以下错误

  

img2pdf:错误:参数infile:" {1..39} .jpg"不存在

这里给出文件范围的正确方法是什么?

2 个答案:

答案 0 :(得分:2)

你为什么不这样做:

img2pdf --output my.pdf $(ls *.jpg|sort -n)

答案 1 :(得分:1)

我使用以下代码将图像文件转换为pdf

import glob
import re
import img2pdf

dirname = 'C:/images/'
output  = 'C:/image/output.pdf'

# Get all the filenames
filenames = [f for f in glob.iglob(f'{dirname}*.jfif')]
# Sort filenames numerically
filenames = sorted(filenames, key=lambda x:float(re.findall("(\d+)",x)[0]))

with open(output,"wb") as f:
    f.write(img2pdf.convert(filenames))
print(f'Finished converting {output}')