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使用fileinput模块实现逐行读取文件的方法
Apr 29 Python
Python运算符重载用法实例分析
Jun 01 Python
Python进程间通信用法实例
Jun 04 Python
python中多层嵌套列表的拆分方法
Jul 02 Python
python求解数组中两个字符串的最小距离
Sep 27 Python
如何在django里上传csv文件并进行入库处理的方法
Jan 02 Python
Python删除n行后的其他行方法
Jan 28 Python
Python定时任务随机时间执行的实现方法
Aug 14 Python
scrapy数据存储在mysql数据库的两种方式(同步和异步)
Feb 18 Python
python使用matplotlib:subplot绘制多个子图的示例
Sep 24 Python
详解使用python爬取抖音app视频(appium可以操控手机)
Jan 26 Python
python如何利用cv2模块读取显示保存图片
Jun 04 Python
python实现剪贴板的操作
利用Pycharm连接服务器的全过程记录
关于Python OS模块常用文件/目录函数详解
Python+Appium自动化测试的实战
如何使用pdb进行Python调试
Pytest中skip skipif跳过用例详解
Pytest中skip和skipif的具体使用方法
You might like
PHP 5.0对象模型深度探索之绑定
2006/09/05 PHP
rephactor 优秀的PHP的重构工具
2011/06/09 PHP
PHP的构造方法,析构方法和this关键字详细介绍
2013/10/22 PHP
PHP Echo字符串的连接格式
2016/03/07 PHP
php 使用curl模拟ip和来源进行访问的实现方法
2017/05/02 PHP
JS 类型转换常见方法小结
2010/05/31 Javascript
lyhucSelect基于Jquery的Select数据联动插件
2011/03/29 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
2012/01/03 Javascript
javascript学习笔记(七) js函数介绍
2012/06/19 Javascript
jquery属性过滤选择器使用示例
2013/06/18 Javascript
jquery中html、val与text三者属性取值的联系与区别介绍
2013/12/29 Javascript
JavaScript动态改变HTML页面元素例如添加或删除
2014/08/10 Javascript
js显示文本框提示文字的方法
2015/05/07 Javascript
JS正则表达式比较常见用法
2016/01/26 Javascript
前端程序员必须知道的高性能Javascript知识
2016/08/24 Javascript
详解js中Json的语法与格式
2016/11/22 Javascript
jQuery实现扑克正反面翻牌效果
2017/03/10 Javascript
JS字符串统计操作示例【遍历,截取,输出,计算】
2017/03/27 Javascript
react-redux中connect()方法详细解析
2017/05/27 Javascript
webgl实现物体描边效果的方法介绍
2019/11/27 Javascript
javascript 设计模式之组合模式原理与应用详解
2020/04/08 Javascript
vue 数据遍历筛选 过滤 排序的应用操作
2020/11/17 Javascript
Python中的错误和异常处理简单操作示例【try-except用法】
2017/07/25 Python
在python中使用正则表达式查找可嵌套字符串组
2017/10/24 Python
Python编程使用tkinter模块实现计算器软件完整代码示例
2017/11/29 Python
Django的HttpRequest和HttpResponse对象详解
2018/01/26 Python
python使用Tesseract库识别验证
2018/03/21 Python
解决项目pycharm能运行,在终端却无法运行的问题
2019/01/19 Python
HUGO BOSS美国官方网上商店:世界知名奢侈品牌
2017/08/04 全球购物
英国电子产品购物网站:TobyDeals
2018/07/30 全球购物
幼儿园区域活动总结
2014/05/08 职场文书
村党支部对照检查材料思想汇报
2014/09/28 职场文书
2014年前台接待工作总结
2014/12/05 职场文书
2015年党员创先争优承诺书
2015/01/22 职场文书
开国大典观后感
2015/06/04 职场文书
asyncio异步编程之Task对象详解
2022/03/13 Python