有没有脚本可以将文件夹中的图片转换为一个PDF?
我有很多文件夹,每个文件夹里都有很多图片。现在我想要每个文件夹生成一个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,应该可以很容易通过谷歌找到相关信息。