Python PyPDF2模块安装使用解析

这篇文章主要介绍了Python PyPDF2模块安装使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

PyPDF2模块主要的功能是分割或合并PDF文件,裁剪或转换PDF文件中的页面。

0、安装PyPDF2的模块

pip install PyPDF2

1、常用的函数

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time  : 2020/1/15 13:38
# @Author : suk
# @File  : pyxl.py
# @Software: PyCharm
import PyPDF2

reader = PyPDF2.PdfFileReader(open('linux.pdf', 'rb'))
print(reader.getNumPages()) # 获取pdf总页数
print(reader.isEncrypted) # 判断是否有加密
page = reader.getPage(4) # 获取第四页
print(page.extractText()) # 获取第四页的内容
print(reader.getDocumentInfo()) # 获取PDF元信息,即创建时间,作者,标题等

2、读取PDF文件,取指定页数,写入到硬盘上的示例

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import PyPDF2

reader = PyPDF2.PdfFileReader(open('linux.pdf', 'rb'))

output = PyPDF2.PdfFileWriter()

output.addPage(reader.getPage(1))
output.addPage(reader.getPage(4))
output.addPage(reader.getPage(5))
print(output.getNumPages()) # 获取写入页的总页数

output.encrypt('123456')
outputStream = open('PyPDF2-output.pdf', 'wb')
output.write(outputStream)
outputStream.close()

3、读取PDF某一页,旋转180度后,写入到新的PDF文件的示例

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import PyPDF2

reader = PyPDF2.PdfFileReader(open('linux.pdf', 'rb'))

page = reader.getPage(0) # 获取第0页
page.rotateClockwise(180) # 旋转180度

writer = PyPDF2.PdfFileWriter() # 创建PDF写入的对象
writer.addPage(page)

outputStream = open('rotate-page-test.pdf', 'wb') # 创建一个PDF文件
writer.write(outputStream) # 往文件写入PDF数据
outputStream.close() # 写入流

4、PDF增加水印的示例

注意:水印模板可以利用WORD文档写好文字,转为PDF即可

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import PyPDF2

reader = PyPDF2.PdfFileReader(open('linux.pdf', 'rb')) # 增加水印的原文件

watermark = PyPDF2.PdfFileReader(open('水印模板.pdf', 'rb')) # 水印的模板

writer = PyPDF2.PdfFileWriter() # 写入PDF的对象

for i in range(reader.getNumPages()):
  page = reader.getPage(i)
  page.mergePage(watermark.getPage(0)) # 将原文件与水印模板合并
  writer.addPage(page) # 增加到写入对象中

outputStream = open('watermark-test-linux.pdf', 'wb') # 打开一个写入硬盘的文件对象
writer.write(outputStream) # 将合并好的数据,写入硬盘中
outputStream.close() # 关闭文件句柄

测试效果

5、合并多个指定的PDF文件的示例

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from PyPDF2 import PdfFileMerger

merger = PdfFileMerger() # 创建一个合并的对象

input1 = open('01PDF.pdf', 'rb')
input2 = open('02PDF.pdf', 'rb')
input3 = open('03PDF.pdf', 'rb')

merger.append(fileobj=input1, pages=(0, 3)) # 合并文件1的0到3页
merger.merge(position=2, fileobj=input2, pages=(0, 1)) # 合并文件2的0到1页
merger.append(fileobj=input3) # 合并文件的所有页

output = open('document-output.pdf', 'wb') # 保存硬盘上
merger.write(output) # 写入到硬盘上
output.close() # 关闭文件句柄

6、批量合并指定目录的PDF文件的示例

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import PyPDF2
import os
import glob

def get_all_pdf_files(path):
  """获取指定目录的所有pdf文件名"""
  all_pdfs = glob.glob('{0}/*.pdf'.format(path))
  all_pdfs.sort(key=str.lower) # 排序
  return all_pdfs

def main():
  path = os.getcwd()
  all_pdfs = get_all_pdf_files(path)
  if not all_pdfs:
    raise SystemExit('没有可用的PDF类型文件')

  merger = PyPDF2.PdfFileMerger()

  first_obj = open(all_pdfs[0], 'rb') # 打开第一个PDF文件
  merger.append(first_obj) # 增加到合并的对象中

  file_objs = []
  for pdf in all_pdfs[1:]: # 读取所有的文件对象
    file_objs.append(open(pdf, 'rb'))

  for file_obj in file_objs:
    reader = PyPDF2.PdfFileReader(file_obj)
    merger.append(fileobj=file_obj, pages=(1, reader.getNumPages()))

  outputStream = open('merge-pdfs.pdf', 'wb')
  merger.write(outputStream)
  outputStream.close()
  for file_obj in file_objs: # 批量关闭文件句柄
    file_obj.close()

if __name__ == '__main__':
  main()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Python 用三行代码提取PDF表格数据

    从 PDF 表格中获取数据是一项痛苦的工作.不久前,一位开发者提供了一个名为 Camelot 的工具,使用三行代码就能从 PDF 文件中提取表格数据. PDF 文件是一种非常常用的文件格式,通常用于正式的电子版文件.它能够很好的将不同的排版格式固定下来,形成版面清晰且美观的展示效果.然而,对于想要从 PDF 中提取信息的人们来说,PDF 是个噩梦,尤其是表格. 大量的学术报告.论文.分析文章都使用 PDF 展示其中的表格数据,但是对于如果想要直接从表格中复制数据则会非常麻烦.不久前,有一位开发者

  • Python提取PDF内容的方法(文本、图像、线条等)

    1.安装PDFminer3k 使用pip 命令安装 pip install pdfminer3k 2.编写测试 你可以在这里获得官方参考:PDFMiner 如果你不喜欢看英文的官方文档,这里的翻译也许对你有帮助:中文PDFMiner文档 下面的程序,我拓展了官方给出的例子,你可以通过这个例子统计出来你的pdf文件一共包含哪些内容,比如文本框,曲线,图片等 #!/usr/bin/python # -*- coding: utf-8 -*- __author__ = 'yooongchun' imp

  • 将Python字符串生成PDF的实例代码详解

    笔者在今天的工作中,遇到了一个需求,那就是如何将Python字符串生成PDF.比如,需要把Python字符串'这是测试文件'生成为PDF, 该PDF中含有文字'这是测试文件'.   经过一番检索,笔者决定采用wkhtmltopdf这个软件,它可以将HTML转化为PDF.wkhtmltopdf的访问网址为:https://wkhtmltopdf.org/downloads.html ,读者可根据自己的系统下载对应的文件并安装.安装好wkhtmltopdf,我们再安装这个软件的Python第三方模块

  • 用python把ipynb文件转换成pdf文件过程详解

    这两天一直在做课件,我个人一直不太喜欢PPT这个东西--能不用就不用,我个人特别崇尚极简风. 谁让我们是程序员呢,所以就爱上了Jupyter写课件,讲道理markdown也是个非常不错的写书格式啊. 安装Jupyter其实非常简单,你会python就应该会用jupyter,起码简单的 pip install jupyter, jupyter notebook 要会对伐- 好那接下来就是使用jupyter了,启动jupyter后,使用浏览器访问相应IP:Port就可以使用了.没错,jupyter就

  • Python使用到第三方库PyMuPDF图片与pdf相互转换

    使用 Python 进行图片和pdf之间的相互转换 使用到第三方库 PyMuPDF 在 python 环境下对 PDF 文件的操作. PDF 转为图片 需新建文件夹 pdf2png import fitz import glob def rightinput(desc): flag=True while(flag): instr = input(desc) try: intnum = eval(instr) if type(intnum)==int: flag = False except: p

  • python word转pdf代码实例

    原理 使用python win32 库 调用word底层vba,将word转成pdf 安装pywin32 pip install pywin32 python代码 from win32com.client import gencache from win32com.client import constants, gencache def createPdf(wordPath, pdfPath): """ word转pdf :param wordPath: word文件路径

  • Python 3.6 中使用pdfminer解析pdf文件的实现

    所使用python环境为最新的3.6版本 一.安装pdfminer模块 安装anaconda后,直接可以通过pip安装 pip install pdfminer3k 如上图所示安装成功. 二.在IDE中进行编码 #!/usr/bin/env python # encoding: utf-8 """ @author: wugang @software: PyCharm @file: prase_pdf.py @time: 2017/3/3 0003 11:16 "&q

  • Python中使用pypdf2合并、分割、加密pdf文件的代码详解

    朋友需要对一个pdf文件进行分割,在网上查了查发现这个pypdf2可以完成这些操作,所以就研究了下这个库,并做一些记录.首先pypdf2是python3版本的,在之前的2版本有一个对应pypdf库. 可以使用pip直接安装: pip install pypdf2 官方文档: pythonhosted.org/PyPDF2/ 里面主要有这几个类: PdfFileReader . 该类主要提供了对pdf文件的读操作,其构造方法为: PdfFileReader(stream, strict=True,

  • python如何将多个PDF进行合并

    背景 由于工作性质,经常面对不同的问题,某些场景下SQL+Excel.常用办公软件不能处理,这时到网上找一些案例,自己动手用python处理.后续,借此博客记录比较典型的处理过程. 后续,陆续实际处理的问题,如 1. 合并PDF 2. 拆分PDF 3. 敏感字段MD5脱敏 4. 从非架构化的大文本文件中提取指定条件的记录 需求 工作和生活中有时会遇到将多个pdf文件,合并成一个大文件的情况.例如,扫描时,普通扫描仪或打印机一页生成一个PDF,而一份资料实际多页.Adobe的收费版有合并功能,我们

  • Python PyPDF2模块安装使用解析

    这篇文章主要介绍了Python PyPDF2模块安装使用解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 PyPDF2模块主要的功能是分割或合并PDF文件,裁剪或转换PDF文件中的页面. 0.安装PyPDF2的模块 pip install PyPDF2 1.常用的函数 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2020/1/15 13:38 # @Author : suk

  • Python argparse模块应用实例解析

    这篇文章主要介绍了Python argparse模块应用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 简介 argparse是python用于解析命令行参数和选项的标准模块.argparse模块的作用是用于解析命令行参数. 使用步骤 1.首先导入该模块 2.然后创建一个解析对象 3.然后向该对象中添加你要关注的命令行参数和选项,每一个add_argument方法对应一个你要关注的参数或选项 4.最后调用parse_args()方法进行

  • Python hashlib模块加密过程解析

    这篇文章主要介绍了Python hashlib模块加密过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 hashlib模块 用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 SHA1, SHA224, SHA256, SHA384, SHA512 ,MD5 算法 import hashlib m = hashlib.md5() m.update(b"Hello") m.update(b"It's me

  • python查看模块安装位置的方法

    一.打开命令行,输入 python -v 二.这里以OpenCV为例,cv2为OpenCV模块名,接着输入 import cv2 结果如下 以上这篇python查看模块安装位置的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.

  • python getopt模块使用实例解析

    这篇文章主要介绍了python getopt模块使用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 官方介绍地址: https://docs.python.org/3.1/library/getopt.html 实用方向: 处理命令行参数的一个方法,简单好用. 方法: getopt模块总共有2个函数,分别为: getopt.getopt getopt.gnu_getopt 简单使用: getopt这个函数常用,简单看一下这个函数的使用:

  • Python hmac模块使用实例解析

    这篇文章主要介绍了Python hmac模块使用实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 hmac模块的作用: 用于验证信息的完整性. 1.hmac消息签名(默认使用MD5加算法) hmac_md5.py #!/usr/bin/env python # -*- coding: utf-8 -*- import hmac #默认使用是md5算法 digest_maker = hmac.new('secret-shared-key'.

  • 详解python tkinter模块安装过程

    引言: 在Python3下运行Matplotlib之时,碰到了"No module named _tkinter"的问题,花费数小时进行研究解决,这里讲整个过程记录下来,并尝试分析过程中的解决思路利弊得失,以资后效,这里重点提示需要关注错误信息的分析,这个是第一现场. 环境介绍 任何技术问题的出现以及修复都是依赖于系统环境以及特定版本的,这里首先描述如下: Ubuntu: 17.10  Python: 3.6.1 基于virutalenv来切换不同的Python环境 tkinter的问

  • Python argparse模块使用方法解析

    这篇文章主要介绍了Python argparse模块使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1. 说明 argparse 模块是python 用于解析命令行参数和选项的标准模块. 程序定义它需要的参数,然后 argparse 模块将弄清如何从 sys.argv 解析出那些参数. argparse 模块还会自动生成帮助和使用手册,并在用户给程序传入无效参数时报出错误信息. 2. 使用流程 使用argparse 模块配置命令行参

  • python xlwt模块的使用解析

    一.基础类介绍 1.工作簿类Workbook简介: import xlwt class Workbook(object0): ''' 工作簿类,使用xlwt创建excel文件时,首先要实例化此类的对象 ''' def __init__(self, encoding='ascii', style_compression=0): pass def add_sheet(self,sheetname, cell_overwrite_ok=False): ''' 在工作簿中创建工作表 :param she

  • python openssl模块安装及用法

    小编曾经有过这样的经历,就是在安装使用django框架时候,遇到了部分模块不能够使用,检查了很久,才发现是因为版本问题,需要重新编译安装一个模块版本.这个模块就是我们今天要说的 openssl模块,给大家来一个高瞻远瞩,先让大家掌握住怎么去安装 openssl模块,方便大家日后碰到类似问题,可以得到有效解决. 第一步.下载openssl模块 wget tar -zxvf openssl-1.1.1a.tar.gz cd openssl-1.1.1a 第二步.安装openssl模块 ./confi

随机推荐