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 变量类型及命名规则介绍
Jun 08 Python
解析Python中while true的使用
Oct 13 Python
浅谈python中的数字类型与处理工具
Aug 02 Python
python实现定时自动备份文件到其他主机的实例代码
Feb 23 Python
几种实用的pythonic语法实例代码
Feb 24 Python
wx.CheckBox创建复选框控件并响应鼠标点击事件
Apr 25 Python
Django rest framework工具包简单用法示例
Jul 20 Python
python中break、continue 、exit() 、pass终止循环的区别详解
Jul 08 Python
详解Ubuntu环境下部署Django+uwsgi+nginx总结
Apr 02 Python
在python里使用await关键字来等另外一个协程的实例
May 04 Python
Pandas替换及部分替换(replace)实现流程详解
Oct 12 Python
手残删除python之后的补救方法
Jun 26 Python
python实现剪贴板的操作
利用Pycharm连接服务器的全过程记录
关于Python OS模块常用文件/目录函数详解
Python+Appium自动化测试的实战
如何使用pdb进行Python调试
Pytest中skip skipif跳过用例详解
Pytest中skip和skipif的具体使用方法
You might like
编写PHP的安全策略
2006/10/09 PHP
typecho插件编写教程(六):调用接口
2015/05/28 PHP
thinkPHP框架整合tcpdf插件操作示例
2018/08/07 PHP
PHP fopen函数用法实例讲解
2019/02/15 PHP
PHP设计模式之工厂模式(Factory Pattern)的讲解
2019/03/21 PHP
jQuery实现 注册时选择阅读条款 左右移动
2013/04/11 Javascript
原生JS实现在线问卷调查投票特效
2017/01/03 Javascript
JQuery页面随滚动条动态加载效果的简单实现(推荐)
2017/02/08 Javascript
Bootstrap里的文件分别代表什么意思及其引用方法
2017/05/01 Javascript
node中modules.exports与exports导出的区别
2018/06/08 Javascript
Webpack之tree-starking 解析
2018/09/11 Javascript
python写的一个squid访问日志分析的小程序
2014/09/17 Python
Python的Flask框架中的Jinja2模板引擎学习教程
2016/06/30 Python
详解Golang 与python中的字符串反转
2017/07/21 Python
python3获取两个日期之间所有日期,以及比较大小的实例
2018/04/08 Python
Python使用Phantomjs截屏网页的方法
2018/05/17 Python
Python操作Elasticsearch处理timeout超时
2020/07/17 Python
HTML5 拖放功能实现代码
2016/07/14 HTML / CSS
澳大利亚最受欢迎的美发和美容在线商店:Catwalk
2018/12/12 全球购物
美国时尚大码女装购物网站:Avenue
2019/05/24 全球购物
Carrs Silver官网:英国著名的银器品牌
2020/08/29 全球购物
C# .NET面试题
2015/11/28 面试题
2013年入党人员的自我鉴定
2013/10/25 职场文书
运动会广播稿80字
2014/01/23 职场文书
2014信息公开实施方案
2014/02/22 职场文书
学校师德承诺书
2014/05/23 职场文书
大型演出策划方案
2014/05/28 职场文书
电子商务系毕业生自荐信
2014/05/29 职场文书
行政执法队伍作风整顿剖析材料
2014/10/11 职场文书
2015政治思想表现评语
2015/03/25 职场文书
投标单位介绍信
2015/05/05 职场文书
甲午大海战观后感
2015/06/02 职场文书
公共场所卫生管理制度
2015/08/05 职场文书
教师廉政准则心得体会
2016/01/20 职场文书
PyCharm 配置SSH和SFTP连接远程服务器
2022/05/11 Python
apache ftpserver搭建ftp服务器
2022/05/20 Servers