有没有脚本可以将文件夹中的图片转换为一个PDF?

7 投票
3 回答
4390 浏览
提问于 2025-04-16 19:59

我有很多文件夹,每个文件夹里都有很多图片。现在我想要每个文件夹生成一个PDF文件,把文件夹里的所有图片都放进这个PDF里。我有成千上万个文件夹,所以我希望能有一种方法,可以批量处理或者自动进入每个文件夹开始处理这些图片。

3 个回答

0

我建议你可以用类似下面的方式来遍历你的文档:

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

在这个循环里面,我建议使用一个叫做 pyPDF 的库。

1

我用这段代码做了同样的事情。它使用的是Python(2.7版本,不是Python 3),并且需要下载reportlab这个包,下载链接在这里:http://www.reportlab.com/software/installation/。这段代码会遍历你设置的“根目录”下的所有子目录,然后把每个文件夹里的所有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"
14

我会用ImageMagick来解决这个问题,而不是用Python。ImageMagick有一个命令行工具叫做'convert'。你可以这样使用它:

convert *.jpg foo.pdf

可以查看这里。具体使用方法取决于你是用Windows、Mac还是Linux,应该可以很容易通过谷歌找到相关信息。

撰写回答