我有代码将文件夹中的所有.jpgs转换为一个PDF,但它无效。我相信这是因为我的目录被传递了一些东西。以下是代码和我的输出。现在它声明我的PDF已写入,但它不显示目录。
root = "C:\\Users\\Matthew\\Desktop\\Comics\\"
try:
n = 0
for dirpath, dirnames, filenames in os.walk(root):
PdfOutputFileName = os.path.basename(dirpath) + ".pdf"
c = canvas.Canvas(PdfOutputFileName)
if n > 0 :
for filename in filenames:
LowerCaseFileName = filename.lower()
if LowerCaseFileName.endswith(".jpg"):
print(filename)
filepath = os.path.join(dirpath, filename)
print(filepath)
im = ImageReader(filepath)
imagesize = im.getSize()
c.setPageSize(imagesize)
c.drawImage(filepath,0,0)
c.showPage()
c.save()
n = n + 1
print "PDF of Image directory created" + PdfOutputFileName
except:
print "Failed creating PDF"
以下是我的输出: PDF目录created.pdf
答案 0 :(得分:2)
开始时n
为0
。
os.walk
循环在这种情况下只运行一次(因为可能只有一个目录要扫描,而你只得到一个print
语句,这就是证据),提供filenames
和dirnames
作为iterables,但是你通过测试n > 0
来跳过迭代,所以它什么都不做。
for dirpath, dirnames, filenames in os.walk(root):
PdfOutputFileName = os.path.basename(dirpath) + ".pdf"
c = canvas.Canvas(PdfOutputFileName)
if n > 0 :
我的建议:摆脱if n > 0
测试。
答案 1 :(得分:0)
看看img2pdf
在Python中的无损转换:
https://gitlab.mister-muffin.de/josch/img2pdf
CLI用法示例:
img2pdf img1.png img2.jpg -o out.pdf