多张图片转成PDF文件
1、解决的问题
最近工作中,常常遇到同事让帮忙扫描文件,再将扫描出来的文件做成一份PDF文件,以前会使用免费的在线网站进行转换,最近开始收费了(不能白嫖了!)。打工人挣钱不易,自己做个吧!
2、用到的技术
语言:python
模块:fpdf、tkinter
3、前置步骤
安装fpdf模块:
pip install fpdf
若需要打包的话,还需要安装pyinstaller(此处不讲)打包过程中容易遇到坑(此处也不讲)。
4、源码
fpdf安装完成后,下述源码可直接运行
import os
from fpdf import FPDF
import fpdf
import tkinter as tk
import tkinter.messagebox
from html.parser import HTMLParserclass img2Pdf:def __init__(self,path,file_name_list):self.pdf = FPDF()self.pdf.set_auto_page_break(0) # 自动分页设为Falseself.path = pathself.file_name_list = file_name_listdef __del__(self):passdef img_pdf(self):msg = "成功"try:self.file_name_list = self.file_name_list.split(',')for image in self.file_name_list:if os.path.isfile(self.path+'\\'+image):self.pdf.add_page()self.pdf.image(os.path.join(self.path, image), w=int(210*0.9), h=int(297*0.9)) # 指定宽高else:msg = "失败:文件不存在" + imageself.pdf.output(os.path.join(self.path, self.file_name_list[0]+".pdf"), "F")except Exception as e:msg = "失败:"+efinally:return msgclass img2pdf_tkinter:def __init__(self):self.root = tk.Tk()self.root.title('IMG===》PDF')# 传值变量self.textVar_Path = tk.StringVar()self.textVar_Path.set('示例:'+r'D:\Img2Pdf')self.textVar_File = tk.StringVar()self.textVar_File.set('示例:001.jpg,002.jpg')self.msg = ""self.source_path = ""self.file_name_list = ""self.img2Pdf = img2Pdf(path=self.source_path, file_name_list=self.file_name_list)def __del__(self):passdef window(self):# 两个sticky=W实现第一列左对齐tk.Label(self.root, text='文件地址').grid(row=0, sticky=tk.W)tk.Label(self.root, text='图片名称').grid(row=1, sticky=tk.W)# rowspan=2可以让图片横跨2行photo = tk.PhotoImage(file='./640041e03e438197442f8c82a81acca1.png')tk.Label(self.root, image=photo).grid(row=0, column=2, rowspan=2, padx=5, pady=5)tk.Entry(self.root,textvariable=self.textVar_Path).grid(row=0, column=1)tk.Entry(self.root,textvariable=self.textVar_File).grid(row=1, column=1)# columnspan=3可以让按钮横跨3列tk.Button(text='提交', width=10, command=self.getText).grid(row=2, columnspan=3, pady=5)tk.mainloop()def getText(self):self.source_path = self.textVar_Path.get().strip()self.file_name_list = self.textVar_File.get().strip().replace(',',',')self.img2Pdf = img2Pdf(path=self.source_path, file_name_list=self.file_name_list)self.msg = self.img2Pdf.img_pdf()if len(self.msg):if '失败' in self.msg:tkinter.messagebox.showerror('错误', self.msg)else:tkinter.messagebox.showinfo('提示', '转换成功')if __name__ == '__main__':img2pdf_tkinter = img2pdf_tkinter()img2pdf_tkinter.window()
5、效果展示
成品下载:https://download.csdn.net/download/hanxia159357/66923384
多张图片转成PDF文件相关推荐
- 多张图片合并成PDF文件,还在下载合并软件,PS就能帮你搞定
我们知道pdf格式是我们在工作和学习中常用的一种文件格式,pdf是一种通用的文档格式.很多阅读器都支持pdf格式,比如小编就非常喜欢用kindle来进行阅读,kindle可以打开pdf格式的电子书,可 ...
- jpg转换成PDF 如何将多张图片合成一个PDF文件
一般扫描一些文档资料之后形成的图片会放在同一个文件夹中,但是有时为了便于查看和管理这些图片,就会将图片合成一个文档,这样查看内容的时候会比较方便,一般也都是将图片转换成PDF文件. 把图片转换成PDF ...
- 【微信小程序云开发】使用云函数(node.js)实现多张图片转成pdf的功能,且pdf带水印
最近在做项目的时候,碰到一个功能需要多张图片转成pdf的功能,首先,在网上找了很多资料,都没有一个合适的. 后来,就自己动手使用云函数写了一个处理图片转成pdf的云函数,而且需带水印. 直奔主题,使用 ...
- 使用python将多张图片转换成pdf
有朋友在问如何通过Python将多张图片转换成pdf,刚好之前写了一个小功能,分享给大家. 不多说,直接上代码: #!/usr/local/python3.6.5 #cd /usr/local/pyt ...
- 把jpg文件转换成pdf文件
把jpg文件转换成pdf文件 生涯中,人人常常会拍摄一些照片用来忖量,可是岁月长了,时时会由于照片多而杂乱而懒于翻看,那末你是否思虑做一个电子相册,或制造一本PDF花样的书本来翻看呢?业余的这款JPG ...
- 如何将JPG图片转换成PDF文件
图片这种文件格式已经不仅仅是在工作中会使用到,作为我们生活中,朋友之间在网络渠道上聊天交流,也会用图片来表达一些情绪,增添聊天中活跃的气氛.虽然很适用于聊天中,但是如果工作中同事之间传送图片文件,会显 ...
- 将多个图片转换成PDF文件-img2pdf
➤01 背景 TEASOFT教学软件 应用中需要将DOP文件转换成可以分发的PDF文件,主要过程是将DOP文件转换成高分辨率的BMP\JPEG文件,然后再通过 Acrobat软件将它们合成为PDF文件 ...
- php html转化为pdf,PHP将html转换成PDF文件
昨天在群里看见一位小朋友在求助,他的问题是如果将html页面中的部分html代码转换成PDF文件,我昨天尝试做了一下, 今天给大家分享一下教程和代码. 首先我们需要借助一个PHP的类库及拓展来完成这个 ...
- python怎么变成文档_python3如何将docx转换成pdf文件
本文实例为大家分享了python3将docx转换成pdf文件的具体代码,供大家参考,具体内容如下 直接上代码 # -*- encoding:utf-8 -*- """ a ...
最新文章
- Spring Boot 整合 Quartz 实现 Java 定时任务的动态配置
- C语言中链表的英文名字,数据结构C语言版 循环链表表示和实现(国外英文).doc
- php 清除缓存的操作,PHP清除缓存的几种方法
- 使用 Microsoft Ajax Library 创建自定义客户端脚本
- leetcode - two-sum
- U3D非常诡异的【结构体引用】现象-个例
- AAAI 2020 开源论文 | 用于深度立体匹配的自适应单峰匹配代价体滤波
- kafka修改分区数_Kafka笔记
- NSLog(@%@,类对象); 默认输出类名
- java中gc是怎么工作的_java中的GC(gabage collection)如何工作
- ASP.NET MVC3中的ViewBag动态性
- 矢量归一化_关于LRL矢量的一点分析
- Python随机梯度下降法(二)
- 2020年11月连云港计算机考试,2019年江苏省连云港市下半年全国计算机等级考试考务通知...
- Python设计模式:旁观者模式
- 第四天 轨道交通仿真入门
- 苹果手表连接是什么原理_为什么苹果手表是最具潜力的苹果产品
- Sketch插件开发入门
- mysql: create routin表示的是什么?,关于mysql create routine 权限的一些说明
- java piggy,piggymetrics
热门文章
- linux下载安装的命令,linux安装和常用命令
- 相似图片搜索、算法、识别的原理解析(下)
- ubuntu下执行sudo命令提示:xx is not in the sudoers file. This incident will be reported.
- matlab 可视化界面,[转载]Matlab 的可视化界面设计(上)
- 【数据结构基础整理】图--06:克鲁斯卡尔算法详解
- 深度学习训练之optimizer优化器(BGD、SGD、MBGD、SGDM、NAG、AdaGrad、AdaDelta、Adam)的最全系统详解
- 使用Navicat将MySql数据库导入和导出
- 美团脱颖而出的经验_使用条件格式使重要的Outlook邮件脱颖而出
- fast无线网卡linux驱动,fast无线网卡驱动,详细教您fast无线网卡驱动
- 计算机视觉 (CV) 相关的会议或期刊投稿时间