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

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

ruisui883个月前 (02-03)技术分析30

最近在做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)” 的相关文章

vue3中父子传值、defineProps用法、defineEmits用法

Vue3中新增了一个 script setup 语法糖模式,可以在单文件组件中更简洁地编写组件逻辑。使用 script setup 语法后,props、data、computed、methods 等选项不再需要独立定义,而是可以直接在 setup 函数中声明,代码结构更加清晰,并且可以更方便地使用响...

Git 分支管理策略汇总

最近,团队新入职了一些小伙伴,在开发过程中,他们问我 Git 分支是如何管理的,以及应该怎么提交代码?我大概说了一些规则,但仔细想来,好像也并没有形成一个清晰规范的流程。所以查了一些资料,总结出下面这篇文章,一共包含四种常见的分支管理策略,分享给大家。Git flow在这种模式下,主要维护了两类分支...

K8s里我的容器到底用了多少内存?

作者:frostchen导语 Linux下开发者习惯在物理机或者虚拟机环境下使用top和free等命令查看机器和进程的内存使用量,近年来越来越多的应用服务完成了微服务容器化改造,过去查看、监控和定位内存使用量的方法似乎时常不太奏效。如果你的应用程序刚刚迁移到K8s中,经常被诸如以下问题所困扰:容器的...

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实战篇|使用路由管理用户权限(动态路由)

权限控制是后台管理系统比较常见的需求,如果我们需要对某些页面的添加权限控制的话,那我们可以在路由管理中的权限做一些校验,没有通过权限校验的给出相应的提示或者直接跳转到报错页面。跟着我一起来学vue实战篇路由管理权限吧!权限校验函数getCurrentAuthority()函数用于获取当前用户权限,一...