当前位置:首页 > 技术分析 > 正文内容

Python模块PyPDF2使用(1)(python pypdf)

ruisui885个月前 (02-03)技术分析53

最近在做PDF方面的开发,主要是HTML转图片,HTML转PDF,以及打包整个网站到PDF等处理,考察了很多资料,模块也试过不少,今天说下PyPDF2这个模块的使用,不说废话,上干货。

  • 模块介绍

PyPDF2完善了PyPDF的功能,其中包含了如下Class(部分):

      • PdfFileReader

      • PdfFileMerger

      • PageObject

      • PdfFileWriter

      这四个模块包含了PyPDF2的核心功能,今天介绍下:PdfFileMerger

  • 使用方法(代码附解释)

from PyPDF2 import PdfFileMerger

pdf_file1="PDF文件1路径"

pdf_file2="PDF文件2路径"

pdf_output = "PDF文件输出的路径" #指新生成的文件

merger_file = PdfFileMerger() # 定义一个空文件

#PdfFileMerger提供两种合并PDF的方法,其中包含merger和append这两种方法从字面上理解就是合并和追加。

file_obj = open(pdf_file1, "rb")

merger_file.append(pdf_file1)

file_obj.close()

file_obj = open(pdf_file2, "rb")

merger_file.append(pdf_file2)

file_obj.close()

out_obj = open(pdf_output , "wb")

merger_file.write(out_path)

merger_file.close()

out_obj.close()

# 到此就生成了以追加方式合并的PDF

  • 程序代码(generate_pdf.py)

# coding:utf-8

import traceback

from PyPDF2 import PdfFileMerger

def pdf_merger(path_list,out_path):

"""

合并PDF文件

:param path_list:

:param out_path:

:return:

"""

merger_file = PdfFileMerger()

try:

for pdf_file in path_list:

file_obj = open(pdf_file, "rb")

merger_file.append(file_obj)

file_obj.close()

out_obj = open(out_path, "wb")

merger_file.write(out_path)

merger_file.close()

out_obj.close()

status = True

except Exception as e:

traceback.print_exc()

status = False

return status

#使用时直接导入调用,传入参数即可

初次试水,希望读者受益。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/1390.html

标签: pageobject
分享给朋友:

“Python模块PyPDF2使用(1)(python pypdf)” 的相关文章

手把手教你Vue之父子组件间通信实践讲解【props、$ref 、$emit】

组件是 vue.js 最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的数据无法相互引用。那么组件间如何通信,也就成为了vue中重点知识了。这篇文章将会通过props、$ref和 $emit 这几个知识点,来讲解如何实现父子组件间通信。转载链接:https://www.jia...

Gitlab概览

Gitlab是开源的基于Git的仓库管理系统,也可以管理软件开发的整个生命周期,是项目管理和代码托管平台,支撑着整个DevOps的生命周期。Gitlab很容易选为GitHub,作为公司私有库管理的工具。我们可以用Gitlab Workflow来协同整个团队的软件开发管理过程。软件开发阶段Gitlab...

BuildKit 镜像构建工具

#暑期创作大赛#快速开始 对于 Kubernetes 部署,请参阅examples/kubernetes。BuildKit 由buildkitd守护进程和buildctl客户端组成。虽然buildctl客户端可用于 Linux、macOS 和 Windows,但buildkitd守护程序目前仅适用于...

vue3使用vue-router路由(路由懒加载、路由传参)

vue-router 是 vue的一个插件库1. 专门用来实现一个SPA单页面应用2 .基于vue的项目基本都会用到此库SPA的理解1) 单页Web应用(single page web application,SPA)2) 整个应用只有一个完整的页面3) 点击页面中的链接不会刷新页面, 本身也不会向...

一起学Vue:路由(vue-router)

前言学习vue-router就要先了解路由是什么?前端路由的实现原理?vue-router如何使用?等等这些问题,就是本篇要探讨的主要问题。vue-router是什么路由是什么?大概有两种说法:从路由的用途上来解释路由就是指随着浏览器地址栏的变化,展示给用户的页面也不相同。从路由的实现原理上来解释路...

vue开发微信小程序 - 登录组件

移动端登录功能抽象为通用组件,满足:不同移动端应用中一键登录功能复用支持多种登录:微信登录、H5、QQ登录登录组件使用//引用登录组件 import login from "../components/user/login.vue" export default { compone...