好玩的Python 篇一:用Python显示和处理PDF文件

2020-05-25 00:20:30 0点赞 1收藏 1评论

用Python显示和处理PDF文件

pdf是电子书,文档经常会用的格式,除了下载各种阅读器以外,我们也可以用Python批量处理大量PDF文件。本文用到了pypdf2,pdfminer.six,pdf2image来做常规处理。

pypdf2 获取pdf的基本信息,如作者,书名,页数等


5 from PyPDF2 import PdfFileReader
6
7 def extract_information(pdf_path,filename):
8 try:
9 with open(pdf_path, 'rb') as f:
10 pdf = PdfFileReader(f)
11 information = pdf.getDocumentInfo()
12 number_of_pages = pdf.getNumPages()
13
14 title=filename.split('.pdf')[0]
15 if information.title is not None and len(information.title)>0:
16 title=information.title
17 print(f"{title} page : {number_of_pages}")
18 except Exception as e:
19 pass

基于文字的PDF

pdfminer.six 可以取出文本

8 from io import StringIO
9 from pdfminer.layout import LAParams
10 from pdfminer.high_level import extract_text_to_fp

16 def get_text(path):
17 output_string = StringIO()
18 with open(path, 'rb') as fin:
19 extract_text_to_fp(fin, output_string)
20 print(output_string.getvalue().strip())

基于扫描图片的PDF

pdf2image 可以提出所有页面存为图片,但因为IO的性能问题。作者提出最好用SSD硬盘和多线程。

6 from pdf2image import convert_from_path

12 def get_cover(path,filename):
13 images=convert_from_path(path)
14 images[0].save(filename+'.jpg')

上面的代码把封面(第一页)取了出来,保存为图片

批量处理

我们可以用Python自带的文件处理功能,结合上面的三个函数,批量处理books目录下的大量pdf文件。


38 if __name__ == '__main__':
39 book_folder=os.path.join(Path.home(),'books')
40 for pdf in os.listdir(book_folder):
41 if pdf.endswith('.pdf'):
42 path=os.path.join(book_folder,pdf)
43 title,page=extract_information(path,pdf)
44 if page>0 and page<50:
45 get_text(path)
46 get_cover(path,pdf)

展开 收起

财富自由之路(修订版)

财富自由之路(修订版)

44.5元起

楼船铁马刘寄奴:南北朝启幕战史

楼船铁马刘寄奴:南北朝启幕战史

38.2元起

人间小满 央视网推荐作者 第九届当当影响力作家 姑苏阿焦

人间小满 央视网推荐作者 第九届当当影响力作家 姑苏阿焦

暂无报价

凯叔讲故事APP会员年卡 低至0.68元/天(卡密充值,购买前请查看详情页提示) 音频服务

凯叔讲故事APP会员年卡 低至0.68元/天(卡密充值,购买前请查看详情页提示) 音频服务

388元起

【凯叔新用户专享年卡】限凯叔讲故事APP新用户会员一年卡 vip会员365天 下单填写绑定手机号 【新用户专享】一年卡

【凯叔新用户专享年卡】限凯叔讲故事APP新用户会员一年卡 vip会员365天 下单填写绑定手机号 【新用户专享】一年卡

198元起

《时间的玫瑰》(电子书、全新升级版)

《时间的玫瑰》(电子书、全新升级版)

暂无报价

叶思芬•《金瓶梅》私房笔记音频节目

叶思芬•《金瓶梅》私房笔记音频节目

暂无报价

陆地环境通行分析理论与方法

陆地环境通行分析理论与方法

104.7元起

加拉帕戈斯群岛:演化论的朝圣之旅(自然文库)

加拉帕戈斯群岛:演化论的朝圣之旅(自然文库)

25.5元起

中国古代天文历法与二十四节气

中国古代天文历法与二十四节气

15.2元起

多尺度理论与遥感图像处理及应用

多尺度理论与遥感图像处理及应用

暂无报价

当当网 经典常谈 朱自清的十三堂经典国学常识文学课中国传统文化启蒙畅

当当网 经典常谈 朱自清的十三堂经典国学常识文学课中国传统文化启蒙畅

暂无报价

《必然》(精装)

《必然》(精装)

暂无报价

《胡艺瀚的奢侈品普及课》音频节目

《胡艺瀚的奢侈品普及课》音频节目

暂无报价

凯叔讲故事vip会员 双年卡

凯叔讲故事vip会员 双年卡

388元起

《人间词话》Kindle电子书

《人间词话》Kindle电子书

2.99元起
1评论

  • 精彩
  • 最新
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
1
扫一下,分享更方便,购买更轻松