是否有任何脚本将文件夹图像转换为一个pdf

时间:2011-06-21 12:36:12

标签: python windows pdf

我有很多文件夹,里面有很多图片。现在我想要每个文件夹一个PDF,以便文件夹中包含的所有图像都变成PDF。我有1000个文件夹,所以我想要一些可以批量处理或者可以在文件夹中走动并开始处理的东西。

3 个答案:

答案 0 :(得分:14)

我用ImageMagick来解决这个问题,而不是Python。 ImageMagick有控制台工具'convert'。像这样使用它:

convert *.jpg foo.pdf

here。 (取决于你是否使用Windows,Mac或Linux,应该很容易找到谷歌)

答案 1 :(得分:1)

我用这段代码做同样的事情。它使用Python(2.7而不是Python 3)和可从此处http://www.reportlab.com/software/installation/下载的reportlab包,并循环到您设置“root”的所有子目录,并创建每个文件夹中所有jpeg的一个pdf。

import os
from reportlab.pdfgen import canvas
from reportlab.lib.utils import ImageReader


root = "C:\\Users\\Harry\\" 

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"

答案 2 :(得分:0)

我建议使用以下内容运行for循环文件:

def __init__(self, location):
  if os.path.isdir(location): # search directory
    for infile in glob.glob(os.path.join(directory, '*.png')):
    print 'current file is: %s' % infile

在for循环中,我建议使用诸如pyPDF

之类的库