当前,我正在使用FPDF从PNG屏幕截图生成PDF,但是这需要花费很长时间。
pdf = FPDF('P','mm','A4')
pdf.set_auto_page_break(0)
for image in pngList:
pdf.add_page()
pdf.image(image,w=190)
os.remove(image)
pdf.output(os.path.join(folder,finalExport),"F")
最快的方法是什么? (需要每页截图)
我知道您可以执行以下操作:
import os
import img2pdf
with open("output.pdf","wb") as f:
f.write(img2pdf.convert([i for i in os.listdir('path/to/imageDir') if i.endswith(".jpg")]))
但是带有img2pdf的空白我有一个空白问题,所以我必须将PNG转换为JPG才能这样做,这反过来会减慢该过程的速度。
答案(这种方式将足够快地起作用):
pngList = []
os.chdir("test_folder")
for file in glob.glob("*.png"):
pngList.append(Image.open(r'{}'.format(file)).convert('RGB'))
pngList[0].save(r'pdfExportFile.pdf',save_all=True,append_images=pngList[1:])