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 numpy函数中的linspace创建等差数列详解
Oct 13 Python
Python面向对象之继承代码详解
Jan 29 Python
python模仿网页版微信发送消息功能
Feb 24 Python
TensorFlow 合并/连接数组的方法
Jul 27 Python
一篇文章搞懂Python的类与对象名称空间
Dec 10 Python
对python 合并 累加两个dict的实例详解
Jan 21 Python
Python使用线程来接收串口数据的示例
Jul 02 Python
基于python plotly交互式图表大全
Dec 07 Python
python主线程与子线程的结束顺序实例解析
Dec 17 Python
django自带的权限管理Permission用法说明
May 13 Python
只用20行Python代码实现屏幕录制功能
Jun 02 Python
Python 第三方库 openpyxl 的安装过程
Dec 24 Python
python实现剪贴板的操作
利用Pycharm连接服务器的全过程记录
关于Python OS模块常用文件/目录函数详解
Python+Appium自动化测试的实战
如何使用pdb进行Python调试
Pytest中skip skipif跳过用例详解
Pytest中skip和skipif的具体使用方法
You might like
php后台多用户权限组思路与实现程序代码分享
2012/02/13 PHP
个人写的PHP验证码生成类分享
2014/08/21 PHP
IE6浏览器中window.location.href无效的解决方法
2014/11/20 Javascript
SpringMVC简单整合Angular2的示例
2017/07/31 Javascript
详解vue-cil和webpack中本地静态图片的路径问题解决方案
2017/09/27 Javascript
js 索引下标之li集合绑定点击事件
2018/01/12 Javascript
Vue中的slot使用插槽分发内容的方法
2018/03/01 Javascript
详解angular部署到iis出现404解决方案
2018/08/14 Javascript
微信小程序使用for循环动态渲染页面操作示例
2018/12/25 Javascript
使用webpack搭建pixi.js开发环境
2020/02/12 Javascript
jQuery+ThinkPHP实现图片上传
2020/07/23 jQuery
Vue实现鼠标经过文字显示悬浮框效果的示例代码
2020/10/14 Javascript
[03:56]还原FTP电影首映式 DOTA2群星拼出遗迹世界
2014/03/26 DOTA
Python中的Classes和Metaclasses详解
2015/04/02 Python
python通过定义一个类实例作为ftp回调方法
2015/05/04 Python
python利用urllib实现爬取京东网站商品图片的爬虫实例
2017/08/24 Python
VSCode下好用的Python插件及配置
2018/04/06 Python
深入浅析python 协程与go协程的区别
2019/05/09 Python
python文件读写代码实例
2019/10/21 Python
python中matplotlib实现随鼠标滑动自动标注代码
2020/04/23 Python
opencv 实现特定颜色线条提取与定位操作
2020/06/02 Python
python中字符串的编码与解码详析
2020/12/03 Python
基于html5 DeviceOrientation 实现微信摇一摇功能
2015/09/25 HTML / CSS
HTML5 input新增type属性color颜色拾取器的实例代码
2018/08/27 HTML / CSS
考博自荐信
2013/10/25 职场文书
应聘医药销售自荐书范文
2014/02/08 职场文书
安踏广告词改编版
2014/03/21 职场文书
优秀团干部个人事迹
2014/05/29 职场文书
学校交通安全责任书
2014/08/25 职场文书
付款承诺函范文
2015/01/21 职场文书
工程质量保证书
2015/05/09 职场文书
2015年重阳节活动主持词
2015/07/30 职场文书
2015年中秋晚会主持稿
2015/07/30 职场文书
2015年乡镇食品安全工作总结
2015/10/22 职场文书
三好学生主要事迹材料
2015/11/03 职场文书
python实现简单的名片管理系统
2021/04/26 Python