这是一个带有图形用户界面的pdf合成工具,无需了解内部运行结构,非常友好,还可以做成exe放在电脑中,实用简单!话不多说,直接上

​import os
from PyPDF2 import PdfFileReader,PdfFileWriter
import PySimpleGUI as sgdef FileNameGet(filedir):files_list=[os.path.join(root, filespath) \for root,dirs,files in os.walk(filedir) \for filespath in files \if str(filespath).endswith('pdf')]return files_list if files_list else []def main():layout=[[sg.T('选择文件夹:',size=(18,1)),sg.In(key='-file_dir-'),sg.FolderBrowse()],[sg.T('输入合并后的文件名:',size=(18,1)),sg.In(key='-output_file-'),sg.B('开始合并')],[sg.ML(size=(80,15),key='-ML-')],[sg.B('关于'),sg.In(key='-cd-')]]window=sg.Window('PDF合并工具',layout)def PDFMerge(filepath,output_file):output=PdfFileWriter()output_pages=0pdf_file_name=FileNameGet(filepath)if pdf_file_name:for pdf_file in pdf_file_name:print('路径:%s'% pdf_file)input=PdfFileReader(open(pdf_file,'rb'))page_count=input.getNumPages()output_pages+=page_countwindow['-ML-'].update('正在进行或最后一个文件为:'+'\n'+'路径:%s'% pdf_file+'\n'+'页数:%d'% page_count)print('页数:%d'% page_count)for iPage in range(page_count):output.addPage(input.getPage(iPage))window['-ML-'].update('正在进行或最后一个文件为:'+'\n'+'路径:%s'% pdf_file+'\n'+'页数:%d'% page_count+'\n'+'合并后总页数:%d'% output_pages)print('合并后总页数:%d'% output_pages)output_stream=open(os.path.join(filepath,output_file),'wb')try:output.write(output_stream)output_stream.close()except Exception as e:window['-ML-'].update('正在进行或最后一个文件为:'+'\n'+'路径:%s'% pdf_file+'\n'+'页数:%d'% page_count+'\n'+'合并后总页数:%d'% output_pages+'\n'+'合并失败,请重试!')print('合并失败,请重试!')window['-ML-'].update('正在进行或最后一个文件为:'+'\n'+'路径:%s'% pdf_file+'\n'+'页数:%d'% page_count+'\n'+'合并后总页数:%d'% output_pages+'\n'+f'合并后的文件路径:{filepath}/{output_file}'+'\n'+'PDF文件合并完成!')print('PDF文件合并完成!')print(f'合并后的文件路径:{filepath}/{output_file}')else:window['-ML-'].update('没有可以合并的PDF文件!')print('没有可以合并的PDF文件!')try:while True:event,values=window.read()print(event,values)if event==None:breakif event=='开始合并':file_dir=values['-file_dir-']protion = os.path.splitext(values['-output_file-'])if protion[-1]=='.pdf':output_file=values['-output_file-']else:output_file=values['-output_file-']+'.pdf'PDFMerge(file_dir,output_file)if event=='关于':#window['-ML-'].update('123')sg.Popup('使用方法:请将需要合并的pdf放在一个文件夹中,点击Browse选择此文件夹,合并顺序按照文件夹中存放顺序合并,并将合并后的文件同时存入此文件夹中',title='关于')finally:window.close()[点击并拖拽以移动]​

一个有界面的pdf合成工具(python)超级简单实用可做成exe相关推荐

  1. Python 超级简单精准计算地点日出日落时间

    原文来自Python实用宝典:Python 超级简单精准计算地点日出日落时间 本来想浪漫一把去看个日出,过去后看见天上挂着个大太阳的尴尬情景你经历过吗? 本来想去海边看个日落,结果车到了,太阳也落了的 ...

  2. 手写一个获取验证码的接口,超级简单

    手写一个获取验证码的接口,超级简单,觉得有用就试试吧,话不多说代码附上 private static final int VERIFY_CODE_HEIGHT = 25; //验证码高度private ...

  3. 日程定时提醒程序C语言,DIY一个高大上带提醒的计时器,简单实用,你还在等什么...

    DIY一个高大上带提醒的计时器,简单实用,你还在等什么 发布时间:2020-07-19 15:02:29 来源:51CTO 阅读:1124 作者:实验楼 小编心语:锵锵锵!小编我又来了!昨天发了一篇比 ...

  4. 盘点一个批量提取pdf文件目标信息的实用案例

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 你若盛开,清风自来. 大家好,我是 ...

  5. 超级简单实用的三级地图下钻方法

    超级简单实用的三级地图下钻方法 首先.老方法,创建html,引入jq,echarts.js等各种你需要的文件 然后创建一个容器,用来城防echarts的地图,这些都是入门级的,就不需要我多说了吧 接下 ...

  6. python超级简单爬虫

    初学者还是用bs4+urllib比较好 做了一个超级简单的,对着网页的html找标签就行 由于本人是吃货,所以爬了美食网站 #coding=utf-8 import sys import time i ...

  7. Juqery让世界更美好--超级简单实用的(上、下)自动翻的最佳效果,有图为证!...

    今天是我第一次写博文,虽然我注册有1年多了,但是很少在平时去总结自己的一些经验,我在博客园学到了很多知识,在博客园这个大家庭里,使我深深的体会到,只有分享才会获得更多的收获,希望在今后得日子里能坚持多 ...

  8. Python 使用camelot将PDF转Excel,简单实用

    安装camelot Camelot在读取PDF文件中的表格数据很好用,因此安装这个包就很有需要了,但是直接在cmd里面使用pip install camelot-py会出错,首先提示pip版本需要更新 ...

  9. python将PDF转Excel,简单实用

    若想将一份PDF文件的某页数据导出成excel文件,可用python实现 下图是要转的PDF文件: python程序: import camelot.io as camelot import os o ...

最新文章

  1. 部署war包到阿里云liunx的tomcat时报错:zip END header not found
  2. 哈勃望远镜进一步确认宇宙在加速膨胀
  3. 人生时间计算器_工具拯救效率,高效拯救人生!70个全国工程人实用小工具+算量表格...
  4. Android7.0新特性、新功能
  5. vue打包路径.html问题,如何解决vue.js打包报错问题
  6. Springboot 2.0选择HikariCP作为默认数据库连接池的五大理由
  7. 【日常】Mac安装Homebrew
  8. SQL实战之查找所有员工入职时候的薪水情况
  9. 关于Weex,你想了解的一切都在这里
  10. unigui web app之title buttons
  11. java中求1 2 =3,1. java dom编程艺术---杨涛、王建桥 -第3章 DOM(自总)
  12. python归并排序算法实现_排序算法之归并排序(附 Python 与 JS 实现)
  13. vue制作圆形进度条
  14. C#练习题答案: 卡塔劳尔【难度:1级】--景越C#经典编程题库,1000道C#基础练习题等你来挑战
  15. POJ 1088 滑雪 题解
  16. Android 点九图机制讲解及在聊天气泡中的应用
  17. 【包运行】Java 实现图形界面的邮件轰炸机附带视频指导教程
  18. 财神来了 | 那些年伤害过你的分叉币
  19. 2022年P气瓶充装特种作业证考试题库及模拟考试
  20. 计算机外设分为三类,2021年计算机外设包含什么-计算机外设有什么组成.docx

热门文章

  1. BLE_BQB Test_Intermodulation Performance, uncoded data at 1 Ms/s_RF-PHY/RCV/BV-05-C
  2. 2020年中国新基建人工智能产业链全景图深度分析汇总(附完整企业名单)
  3. Latex书籍模板分享
  4. 46、微信-群聊列表
  5. 如何将一段视频做成动图?分享一款视频转gif工具
  6. vivo直播应用技术实践与探索
  7. 【excel vba】拆分表格
  8. 人工智能工程师一般需要学什么?
  9. 等了3个月终于来啦!传智播客C/C++视频教程开始更新喽~
  10. 西门子1200与台达MS300变频器通讯程序