python办公入门(python办公自动化之pdf篇)
python办公入门(python办公自动化之pdf篇)1、extractText()提取文本方法测试初始化操作对象思维导图如下:page页操作思维导图模拟测试环境不再赘述,见day03 主要有:两个文件读取分别命名:rpdf ad 一个写对象:wpdf
PyPDF2模块介绍之——PageObjectPdfFileReader和PdfFileWriter 都是通过页面对象进行操作的,也就是今天我们学习的PageObject模块,通过它,我们可以进行PDF页面的:缩放、旋转、合并及文本提取等,此模块要与前两个模块组合用。
今天的代码操作在c:/users/admin/desktop/pypdf/day04目录下,有两个PDF文件唐诗三百首.pdf,flower.pdf,Ipython8.0交互式环境下测试,test文件是要读取的测试文件8页,flower是一束花(作为合并文件用)
用于合并的文件
Page页操作基本介绍:一图胜千言
思维导图如下:
page页操作思维导图
PageObject常用方法测试(结合PdfFileReader与PdfFileWriter)模拟测试环境不再赘述,见day03 主要有:两个文件读取分别命名:rpdf ad 一个写对象:wpdf
初始化操作对象
1、extractText()提取文本方法测试
不过很遗憾的是,提取文本的方法不是什么样的都能完成,例如通过扫描转成的Pdf文件,或者只有通过OCR识别的文件,该模块无法完成。
poem_page = rpdf.getPage(1) #获取诗歌第2页
txt = poem_page.extractText() # 提取页面文件,不一定成功
print(txt)
2、mergePage(参数页)提方法测试
mergePage(参数对象),可以合并page对象,并且参数页面会置顶,就是两张PDF页面合并在一起,并且把括号里的页面放到最上层,通常用于添加水印。操作举例
poem_page = rpdf.getPage(1) # 唐诗三百首第2页页面
ad_page = ad.getPage(0) # 水印页面
#合并页面,参数页置顶
ad_page.mergePage(poem_page)
#写入器添加
wpdf.addPage(ad_page)
# 写入文件
with open('合并页面.pdf' 'wb') as f:
wpdf.write(f)
合并页面效果
3、页面旋转方法测试
主要有顺时针旋转rotateClockwise()和逆时针旋转rotateCounterClockwise(),名字太长了,也不好记忆,参数都是90°及其倍数,仅演示一下,更详情参考官方文档。
p1 = ad_page.rotateClockwise(90) #水印页面顺时针旋转90
p2 = ad_page.rotateCounterClockwise(90) #水印页面逆时针旋转90
wpdf.addPage(p1)#把旋转页面加入写入器
with open('旋转页面.pdf' 'wb') as f:
wpdf.write(f)
4、页面缩放方法测试
页面缩放有系列方法:scale(),scaleBy() scaleTo()等,这里演示scaleby(缩放因数)
# 获取的唐诗页面等比例0.5缩放
poem_page.scalBy(0.5)
写入文件结果如下:没有什么用处,知道就行了。
缩放页面
至此,pageObject的常用方法已经演示完毕,PDF页面的:缩放、旋转、合并及文本提取等,好像有用的也就页面合并,文本提取还不如OCR识别,还剩下就是页面合并了,聪明的你通过合并演示也许已经了解了,实战我会演示通过页面合并添加水印效果。