Python系列 之 PyPDF2库 学习
PyPDF2中主要涉及到的几个对象有 PdfFileReader、PdfFileWriter和PdfFileMerger以及PageObject
PdfFileReader
PdfFileReader对象:
import PyPDF2
PyPDF2.PdfFileReader(stream , strict=True , warndest=None , overwriteWarnings=True))
# 参数
# stream :一个 File 对象或支持类似于 File 对象;也可以是表示 PDF 文件路径的字符
# 初始化一个Reader对象
# pdfReader = PyPDF2.PdfFileReader(stream=open(file='pdf2.pdf', mode='rb'))
pdfReader = PyPDF2.PdfFileReader('pdf2.pdf')
PdfFileReader对象的一些属性和方法:
属性 | 说明 |
---|---|
documentInfo | 获取PDF文件的文档信息字典 |
isEncrypted | PDF文件是否加密 |
numPages | 返回PDF文件的页数 |
pages | 相当于返回PDF文件所有页面,每个页面pageObject对象的列表 |
pageLayout | 获取PDF文件的页面布局 |
pageMode | 获取PDF文件的页面模式 |
xmpMetadata | 从PDF文件根目录检索XMP数据 |
方法 | 说明 |
---|---|
decrypt(password) | 解密 |
getDocumentInfo() | 同documentInfo属性 |
getNumPages() | 同numPages 属性 |
getPage(pageNumber) | 获取PDF文件中第pageNumber+1页的PageObject对象 pageNumber基于0 |
getPageLayout() | 同pageLayout属性 |
getPageMode() | 同pageMode属性 |
getPageNumber(page) | 获取 PageObject对象所在PDFFileReader对象的页数 |
getXmpMetadata() | 同xmpMetadata属性 |
简单示例:
# 返回 PDF 文件的文档信息字典
print('PDF 文件的文档信息字典:', pdfReader.getDocumentInfo(), pdfReader.documentInfo)
# 返回PDF文件的页数
print('PDF文件的页数:', pdfReader.getNumPages(), pdfReader.numPages)
# PageObject = PdfFileReader.getPage(pageNumber)
# 获取PdfFileReader中第pageNumber+1页的PageObject对象 pageNumber基于0
page_obj = pdfReader.getPage(1)
print(type(page_obj))
# 获取 PageObject对象 所在PDFFileReader对象的页数 如果找不到页面 返回 -1
print('page_obj所在的页数:', pdfReader.getPageNumber(page=page_obj))
# 获取页面布局 返回当前使用的页面布局
print('获取页面布局:', pdfReader.getPageLayout())
# 获取页面模式 返回 当前使用的页面模式
print('获取页面模式:', pdfReader.getPageMode())
# 从 PDF 文档根目录检索 XMP 数据
print('检索 XMP 数据:', pdfReader.getXmpMetadata())
# 判断该PDF是否加密
print('判断该PDF是否加密:', pdfReader.isEncrypted)
# PDFFileReader的每页pageObject的list?
print(type(pdfReader.pages))