合并多图并转为PDF文件
发布于 2024-10-28
1138
版权声明
我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。
Python学习杂记
扫码关注公众号
扫码阅读
手机扫码阅读
在一次为企业处理大量零碎发票的任务中,为了便于打印存档,采取了一系列措施将数百张发票照片处理成单个PDF文件。首先,使用苹果手机拍摄的照片需要筛选出JPG文件并降低其分辨率,以便合并成PDF文件。随后,通过编写代码,将这些图片合并成一个PDF,最后将所有的JPG文件移动到一个新的文件夹以方便存档。
首先,由于拍摄的照片文件较大,需要筛选出文件夹中的JPG文件并减小其分辨率。通过Python代码实现,选中所有JPG文件并将其分辨率降低到约300KB大小,以便于合并。此过程耗时17秒。
from PIL import Image
import glob, os
for files in glob.glob(r'D:\发票\fp\*.JPG'):
filepath,filename = os.path.split(files)
filterame,exts = os.path.splitext(filename)
opfile = r"D:\发票\cs" #输出路径
im = Image.open(files)
w,h = im.size
im_ss = im.resize((int(w*0.5), int(h*0.5)))
im_ss.save(opfile+"\\"+ filterame+'.JPG') #注意路径要双斜杠或者反斜杠
接下来,定义了一个函数,用于把减小分辨率后的JPG图片合并成一个PDF文件。通过调用这个函数,只需指定输入和输出路径即可完成合并。这个过程耗时29秒。
from fpdf import FPDF
from PIL import Image
import os
def makePdf(pdfFileName, listPages, dizhi):
cover = Image.open(dizhi+ listPages[0])
width, height = cover.size
pdf = FPDF(unit = "pt", format = [width, height])
for page in listPages:
pdf.add_page()
pdf.image(dizhi+page, 0, 0)
pdf.output(pdfFileName, "F")
最后,为了方便存档,编写代码将所有JPG文件移动到一个新的文件夹中。这个简单的文件操作标志着任务的完成。
import os
import glob
import shutil
path = r'D:\发票\fp' #原始文件路径
path_new = r'D:\发票\fl' #目标文件路径
list_name = os.listdir(path)
print(list_name)
print(len(list_name))
for f in os.listdir(path):
filename = os.path.join(path, f)
if f.split(".")[-1] == "JPG":
print(f)
shutil.move(filename, path_new)
print("done")
Python学习杂记
Python学习杂记
扫码关注公众号
还在用多套工具管项目?
一个平台搞定产品、项目、质量与效能,告别整合之苦,实现全流程闭环。
查看方案
Python学习杂记的其他文章
Python字符串拼接常用的6种方法
在Python编程中,字符串拼接是一个常见的操作。Python提供了多种方式来连接字符串,本文将介绍6种不同的字符串拼接方法,帮助大家更好地理解字符串相关操作。
把py程序封装成可执行文件
程序封装指把程序脚本进行一些打包、解析、整合处理生成一个新的文件。封装以后,其他没有安装(python)的电脑也能运行该程序,也能实现该程序的结果。
爬虫写得好,牢饭...哦不,数据少不了!Python 爬虫的“红线”与“金矿”
各位朋友,大家好!最近在技术群里,总有小伙伴问我:“博主,能不能教教怎么爬那个某宝的商品数据?我想做个比价工具。
分享一些Python的学习资料
之前有一些朋友留言想要分享一些python学习的资料,我在这里分享之前我学习python收集到的部分资料,
Python常用的几种画图包介绍
Python拥有一系列强大的图形库,使用户能够以视觉方式探索和呈现数据。这些库从简单的静态图到复杂的交互图都涉及,满足不同用户的需求。
加入社区微信群
与行业大咖零距离交流学习
PMO实践白皮书
白皮书上线
白皮书上线