工作中需要将众多图片转换为PDF文件,在线的各种工具又感觉不是很安全,于是就想到用python写一个小工具,
完成批量图片转换PDF功能。
主要使用python的fitz插件,通过在命令行输入pip install fitz完成安装,由于该资源比较大,建议对python的下载源
进行更改,安装过程有报错,不过不影响使用。更改方式参照:
windows下,在user目录中创建一个pip目录,如C:\Users\xx\pip,新建文件pip.ini,内容如下:
[global]index-url = /pypi/simple/[install]trusted-host=
功能实现代码:
#!/usr/local/python3.8.1# coding: utf-8# author: kanongimport osimport globimport fitz# 防止字符串乱码os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'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)# 使用图片创建单页的PDFpdfbytes = 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:\test\\'# 即将生成的pdf的目标地址pdf_path = r'D:\test\\'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)
运行测试验证结果,在指定目录下形成同名的pdf文件:
用文字记录生活片段