Python怎么遍历列表,python 遍历数组
对于经常阅读扫描PDF资料的人来说,经常会遇到以下问题:
因为一些格式转换的原因,不时会出现一些空白页,规律性不确定。一个是偶数页码,另一个是奇数页码。如果逐个选择删除,对于几百页的文档来说是非常耗时的。
百度搜索删除PDF的空白页,得到一个不得不收费的工具。有了Python,使用免费开源库就可以轻松解决。
首先安装PyPDF2库,然后在Powershell或CMD命令行模式下安装PyPDF2。
流程:
读出空白页和内容页,看看内部结构有没有区别。基于此,遍历整个PDF文件,用内容标记页面,并将其写入另一个PDF文件。
在本文档中,17页是空白页,18页是内容页:
从PyPDF2导入PdfFileReader,PdfFileWriterpath=r d:\ ebook \ PDF \ test . PDF reader=PdfFileReader(open(path,Rb ) 注意PyPDF2中的页码从0开始 blank=reader . get page(16)full=reader . get page(17)每一页都是一个dictionary对象,第一层没有区别。
blank . keys()Out[24]:dict _ keys([/Type ,/Contents ,/parent ,/resources ,/MediaBox])full . keys()Out[25]:dict _ keys([/Type ,/Contents ,/Parent ,/Resources ,/media box ])检查后发现/Resources下的结构不同,空白页中没有/XObject 键:
blank[/Resources ]Out[26]:{ /extg state :{ /opa 0 :{ /Type :/extg state ,/CA: 1} } } full[/Resources ]Out[27]:{ /extg state :{ /Type :/extg state ,/CA :1 },/Opa1: {/Type: /ExtGState ,/CA: 1}},/XObject :同时发现了一些只有文字没有图片和/Font 键的页面,所以会对有这两个键的页面进行标记,然后写入第二个PDF文件:
从PyPDF2导入PdfFileReader,PdfFileWriterpath=r d:\ ebook \ PDF \ test . PDF path _ output=r d:\ ebook \ PDF \ output . PDF reader=PdfFileReader(open(path, Rb ))writer=PdfFileWriter()pages=PDF reader . getnumpages()for I in range(pages):page=reader . get page(I)if /XObject in page[/Resources ]。页面[/Resources]中的keys()或/Font 。keys():writer . add page(page)writer . write(open(path _ output, wb ))
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。