Python合并多张图⽚成PDF⽬录前⾔过程拍照
⽤到的Python操作库
Python遍历⽂件夹获取图⽚旋转图⽚展⽰⽅向并压缩像素整体代码
将脚本打包成exe
安装 PyInstaller打包脚本总结
前⾔
最近需要将记的笔记整理成⼀个 pdf 进⾏保存,所以就研究了⼀下如何利⽤ Python 代码将拍下来的照⽚整个合并成⼀个 pdf
过程
拿到⼀个需求最重要的就是将⼤块任务拆分成⼀个个⼩模块,逐个击破。
拍照
这⼀步⾸先是将所有的书页拍好,需要注意的是要按照书的页码来拍,因为后⾯的排序是按照⽂件名进⾏排序的,拍照的⽂件
名基本上是按照时间⽣成的,如果拍的时候乱了,到时候⽣成的 pdf ⾥⾯的页码也会乱掉。
⽤到的Python 操作库
Python 最好的地⽅就是有⼤量的第三⽅库能帮我们快速实现我们想要的⽅法,搜索到了两个库,
PyFPDF 和img2pdf,我们这⾥选择img2pdf来完成我们的需求
pip install img2pdf
Python遍历⽂件夹获取图⽚
dirname = "f:/wlzcool"
imgs = []
for fname in os.listdir(dirname):
if not fname.endswith(".jpg"):
continue
path = os.path.join(dirname, fname)
if os.path.isdir(path):
continue
imgs.append(path)
需要注意图⽚的⽂件名如果是纯数字且位数不⼀样,排序会为1之后是10⽽不是2,需要进⾏⼀个排序,如果是⼿机拍的⽂件
就没有这个问题。
files.sort(key=lambda x: int(x[:-4]))
旋转图⽚展⽰⽅向并压缩像素
有的时候⼿机拍出来的图⽚是⽔平的,需要将其改为竖直的
⽤rotate旋转⽅向的时候需要注意加上expand=True 这个参数,否则会有⿊边出现。
⼿机的照⽚像素太⾼,有的需要进⾏压缩以保证最后⽣成的pdf的⼤⼩适中。