Python合并pdf文件的工具


Posted in Python onJuly 01, 2021

  如果你需要一个PDF文件合并工具,那么本文章完全可以满足您的要求。哈喽,大家好呀,这里是滑稽研究所。不多废话,本期我们利用Python合并把多个pdf文件合并为一个。我们提前准备了5个pdf文件,来验证代码。

Python合并pdf文件的工具
  源代码:

import os
from PyPDF2 import PdfFileReader, PdfFileWriter

# 使用os模块的walk函数,搜索出指定目录下的全部PDF文件
# 获取同一目录下的所有PDF文件的绝对路径
def getFileName(filedir):

    file_list = [os.path.join(root, filespath) \
                 for root, dirs, files in os.walk(filedir) \
                 for filespath in files \
                 if str(filespath).endswith('pdf')
                 ]
    return file_list if file_list else []

# 合并同一目录下的所有PDF文件
def MergePDF(filepath, outfile):

    output = PdfFileWriter()
    outputPages = 0
    pdf_fileName = getFileName(filepath)

    if pdf_fileName:
        for pdf_file in pdf_fileName:
            print("路径:%s"%pdf_file)

            # 读取源PDF文件
            input = PdfFileReader(open(pdf_file, "rb"))

            # 获得源PDF文件中页面总数
            pageCount = input.getNumPages()
            outputPages += pageCount
            print("页数:%d"%pageCount)

            # 分别将page添加到输出output中
            for iPage in range(pageCount):
                output.addPage(input.getPage(iPage))

        print("合并后的总页数:%d."%outputPages)
        # 写入到目标PDF文件
        outputStream = open(os.path.join(filepath, outfile), "wb")
        output.write(outputStream)
        outputStream.close()
        print("PDF文件合并完成!")

    else:
        print("没有可以合并的PDF文件!")

# 主函数
def main():
    file_dir = input('请输入存有Pdf的文件夹').replace('/','//')# 存放PDF的原文件夹
    outfile = "pick_me.pdf" # 输出的PDF文件的名称
    MergePDF(file_dir, outfile)
    print('done')

main()

Python合并pdf文件的工具
Python合并pdf文件的工具

  可以看到5个PDF文件合并到了一起,那么到这里就结束了吗?当然不是,代码运行遇到PDF文件中文件格式较多时,比如多图,word格式等,会出现以下报错。

Python合并pdf文件的工具

  最后一行报错的意思为:

PyPDF2。utils.PdfReadError:对于键/Im82,字典中字节0xc0161处有多个定义

  通俗一点就是说遇到了一个多义词,程序不知道该取哪个意思了。我们点进pdf.py文件里,找到下图位置。

Python合并pdf文件的工具

  严格模式默认是打开的,我们改成False。

构造方法:
PyPDF2.PdfFileReader(stream,strict = True,warndest = None,overwriteWarnings = True)
stream:File 对象或支持与 File 对象类似的标准读取和查找方法的对象,也可以是表示 PDF 文件路径的字符串。
strict(bool):确定是否应该警告用户所用的问题,也导致一些可纠正的问题是致命的,默认是 True
warndest : 记录警告的目标(默认是 sys.stderr)
overwriteWarnings(bool):确定是否 warnings.py 用自定义实现覆盖 Python 模块(默认为 True)

  我们重新运行程序.

Python合并pdf文件的工具

  打开文件夹,可以看到我们的文件已经合并好了,打开之后的格式也是没有错误的。
  那么,问题解决。

Python合并pdf文件的工具

  如果你只是需要应该PDF合并工具代码直接拿走用即可,如果你想学习pypdf2这个实用的库,并且希望对这段代码进行改进来适配自己的情况

到此这篇关于Python合并pdf文件的文章就介绍到这了,更多相关Python合并pdf文件内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python生成验证码图片代码分享
Jan 28 Python
Ubuntu下安装PyV8
Mar 13 Python
Python实现判断字符串中包含某个字符的判断函数示例
Jan 08 Python
python爬虫获取淘宝天猫商品详细参数
Jun 23 Python
Sanic框架异常处理与中间件操作实例分析
Jul 16 Python
Python读取Excel表格,并同时画折线图和柱状图的方法
Oct 14 Python
Python分支语句与循环语句应用实例分析
May 07 Python
python脚本和网页有何区别
Jul 02 Python
Pytorch实验常用代码段汇总
Nov 19 Python
Python实战之实现简易的学生选课系统
May 25 Python
OpenCV-Python实现人脸美白算法的实例
Jun 11 Python
Python集合set()使用的方法详解
Mar 18 Python
python实现剪贴板的操作
利用Pycharm连接服务器的全过程记录
关于Python OS模块常用文件/目录函数详解
Python+Appium自动化测试的实战
如何使用pdb进行Python调试
Pytest中skip skipif跳过用例详解
Pytest中skip和skipif的具体使用方法
You might like
php excel reader读取excel内容存入数据库实现代码
2012/12/06 PHP
php计算到指定日期还有多少天的方法
2015/04/14 PHP
让Laravel API永远返回JSON格式响应的方法示例
2018/09/05 PHP
Javascript Function对象扩展之延时执行函数
2010/07/06 Javascript
dreamweaver 安装Jquery智能提示
2011/04/02 Javascript
自己动手制作jquery插件之自动添加删除行的实现
2011/10/13 Javascript
jQuery中after的两种用法实例
2013/07/03 Javascript
js 触发select onchange事件代码
2014/03/20 Javascript
JS中获取函数调用链所有参数的方法
2015/05/07 Javascript
解析Javascript单例模式概念与实例
2016/12/05 Javascript
Angular中ng-bind和ng-model的区别实例详解
2017/04/10 Javascript
微信小程序 wx.request方法的异步封装实例详解
2017/05/18 Javascript
js中变量的连续赋值(实例讲解)
2017/07/08 Javascript
如何使用VuePress搭建一个类型element ui文档
2019/02/14 Javascript
基于vue实现一个神奇的动态按钮效果
2019/05/15 Javascript
Vue数据驱动表单渲染,轻松搞定form表单
2019/07/19 Javascript
防止Layui form表单重复提交的实现方法
2019/09/10 Javascript
JS 事件机制完整示例分析
2020/01/15 Javascript
Vue使用富文本编辑器Vue-Quill-Editor(含图片自定义上传服务、清除复制粘贴样式等)
2020/05/15 Javascript
[00:48]DOTA2国际邀请赛公开赛报名开始 扫码开启逐梦之旅
2018/06/06 DOTA
Python多线程实现同步的四种方式
2017/05/02 Python
15行Python代码带你轻松理解令牌桶算法
2018/03/21 Python
python 定时任务去检测服务器端口是否通的实例
2019/01/26 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
2019/07/03 Python
python实现俄罗斯方块小游戏
2020/04/24 Python
使用opencv识别图像红色区域,并输出红色区域中心点坐标
2020/06/02 Python
virtualenv介绍及简明教程
2020/06/23 Python
html5如何及时更新缓存文件(js、css或图片)
2013/06/24 HTML / CSS
希尔顿酒店中国网站:Hilton中国
2017/03/11 全球购物
英国音乐设备和乐器商店:Gear4music
2017/10/16 全球购物
美国购物网站:Clickhere2shop
2021/01/28 全球购物
抗震救灾标语
2014/06/26 职场文书
影视广告专业求职信
2014/09/02 职场文书
2014年人事工作总结范文
2014/11/19 职场文书
幼儿园教师个人总结
2015/02/05 职场文书
详解Html5项目适配系统深色模式方案总结
2021/04/14 HTML / CSS