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连接远程ftp服务器并列出目录下文件的方法
Apr 01 Python
如何使用七牛Python SDK写一个同步脚本及使用教程
Aug 23 Python
使用Turtle画正螺旋线的方法
Sep 22 Python
基于Python的文件类型和字符串详解
Dec 21 Python
python3 http提交json参数并获取返回值的方法
Dec 19 Python
python实现弹窗祝福效果
Apr 07 Python
pandas 使用均值填充缺失值列的小技巧分享
Jul 04 Python
python+OpenCV实现图像拼接
Mar 05 Python
python变量的作用域是什么
May 26 Python
在PyCharm中安装PaddlePaddle的方法
Feb 05 Python
解决pycharm不能自动保存在远程linux中的问题
Feb 06 Python
python 字典和列表嵌套用法详解
Jun 29 Python
python实现剪贴板的操作
利用Pycharm连接服务器的全过程记录
关于Python OS模块常用文件/目录函数详解
Python+Appium自动化测试的实战
如何使用pdb进行Python调试
Pytest中skip skipif跳过用例详解
Pytest中skip和skipif的具体使用方法
You might like
php 执行系统命令的方法
2009/07/07 PHP
php win下Socket方式发邮件类
2009/08/21 PHP
PHP反转字符串函数strrev()函数的用法
2012/02/04 PHP
php弹出提示框的是实例写法
2019/09/26 PHP
jquery dialog键盘事件代码
2010/08/01 Javascript
javascript 函数参数限制说明
2010/11/19 Javascript
解析JavaScript中的不可见数据类型
2013/12/02 Javascript
JS 获取浏览器和屏幕宽高等信息代码
2014/03/31 Javascript
js不能获取隐藏的div的宽度只能先显示后获取
2014/09/04 Javascript
Flash图片上传组件 swfupload使用指南
2015/03/14 Javascript
jQuery实现百度登录框的动态切换效果
2017/04/21 jQuery
JS判断微信扫码的方法
2017/08/07 Javascript
Mui使用jquery并且使用点击跳转新窗口的实例
2017/08/19 jQuery
基于BootStrap的文本编辑器组件Summernote
2017/10/27 Javascript
Vue-cli中为单独页面设置背景色的实现方法
2018/02/11 Javascript
layui 上传插件 带预览 非自动上传功能的实例(非常实用)
2019/09/23 Javascript
vue登录以及权限验证相关的实现
2019/10/25 Javascript
vue 调用 RESTful风格接口操作
2020/08/11 Javascript
vue路由的配置和页面切换详解
2020/09/09 Javascript
[13:38]2015国际邀请赛中国战队出征仪式
2015/05/29 DOTA
跟老齐学Python之总结参数的传递
2014/10/10 Python
Python中import导入上一级目录模块及循环import问题的解决
2016/06/04 Python
python验证码识别教程之灰度处理、二值化、降噪与tesserocr识别
2018/06/04 Python
windows 10 设定计划任务自动执行 python 脚本的方法
2019/09/11 Python
python time()的实例用法
2020/11/03 Python
python接口自动化框架实战
2020/12/23 Python
房地产出纳岗位职责
2013/12/01 职场文书
高中毕业自我鉴定
2013/12/13 职场文书
银行服务明星推荐材料
2014/05/29 职场文书
多媒体编辑专业毕业生求职信
2014/06/13 职场文书
推广普通话标语
2014/06/27 职场文书
教师四风问题对照检查材料
2014/09/26 职场文书
2015年派出所工作总结
2015/04/24 职场文书
观后感格式
2015/06/19 职场文书
2015国庆节66周年标语
2015/07/30 职场文书
PHP RabbitMQ消息列队
2022/05/11 PHP