Python将文件夹中的所有JPGS转换为PDF

时间:2017-01-15 20:31:43

标签: python pdf

我有代码将文件夹中的所有.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

2 个答案:

答案 0 :(得分:2)

开始时n0

os.walk循环在这种情况下只运行一次(因为可能只有一个目录要扫描,而你只得到一个print语句,这就是证据),提供filenamesdirnames作为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