有朋友在问如何通过Python将多张图片转换成pdf,刚好之前写了一个小功能,分享给大家。
不多说,直接上代码:
#!/usr/local/python3.6.5
#cd /usr/local/python3.6.5/bin
# coding: utf-8
# author: wang
import os
import glob
import fitz
os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'
# coding=utf-8
def frompic2pdf(img_path, pdf_path, pdf_name):
# print(img_path + pdf_name + '.jpg')
# 使用glob读图
for img in sorted(glob.glob(img_path + pdf_name + '.jpg')):
# 打开空文档
doc = fitz.open()
# 打开指定图片
imgdoc = fitz.open(img)
# 使用图片创建单页的PDF
pdfbytes = imgdoc.convertToPDF()
imgpdf = fitz.open("pdf", pdfbytes)
# 将当前页写入文档
doc.insertPDF(imgpdf)
# 保存为指定名称的PDF文件
doc.save(pdf_path + pdf_name + '.pdf')
# 关闭
doc.close()
if __name__ == '__main__':
# 读取图片地址
img_path = r'D:\图片存放路径\\'
# 即将生成的pdf的目标地址
pdf_path = r'D:\生成pdf存放路径\\'
for root, dirs, files in os.walk(img_path):
for file in files:
# 目标文件名称 无后缀
destfileName = os.path.splitext(file)[0]
# print(destfileName)
frompic2pdf(img_path=img_path, pdf_path=pdf_path, pdf_name=destfileName)