Ch13 处理pdf和wrod文档

2019 July 24 at Kyoto Univ.

pdf 和 word 文档都是二进制文件,由于包含多媒体信息(图标甚至视频),处理起来比普通文本复杂许多。好在一些先驱者已经写好了一些模块可以让我们来使用,致敬这帮人!哈哈。这章节我们主要专注从pdf中解析文本,或者从已有文档生成新的pdf。

13.1.1 从 pdf 提取文本

此处我们使用PyPDF2模块,注意它并不能帮助我们提取图像等多媒体信息,不过可以提取文本,并将文本返回为strs。 本书提供了一些文件可以供我们下载。 方便点的话,我们直接在terminal上用


In [ ]:
wget https://nostarch.com/download/Automate_the_Boring_Stuff_onlinematerials_v.2.zip

就可以下载到,然后可以找到一个叫做meetingminitus.pdf的文件。这个就是我们接下来要用的


In [6]:
import PyPDF2

with open('./automate_online-materials/meetingminutes.pdf', 'rb') as f:
    pdfreader = PyPDF2.PdfFileReader(f)
    print(pdfreader.numPages)
    
    page0 = pdfreader.getPage(0)
    page0text = page0.extractText()
    print(page0text)


19
OOFFFFIICCIIAALL  BBOOAARRDD  MMIINNUUTTEESS   Meeting of 
March 7
, 2014
        
     The Board of Elementary and Secondary Education shall provide leadership and 
create policies for education that expand opportunities for children, empower 
families and communities, and advance Louisiana in an increasingly 
competitive glob
al market.
 BOARD 
 of ELEMENTARY
 and 
 SECONDARY
 EDUCATION
  

In [ ]:

好。现在来试试我自己用latex写的pdf文档。


In [19]:
import PyPDF2

with open('./polarmetal-v28-letter.pdf', 'rb') as f:
    pdfreader = PyPDF2.PdfFileReader(f)
    print(pdfreader.numPages)
    for i in range(0,pdfreader.numPages+1):
        if i==0:
            page_number = pdfreader.getPage(i)
            page_text = page_number.extractText()
            print(page_text[:100])


22
Predictionofanewmulti-functionalpolarmetalvia
high-throughputstructurescreening
Yue-WenFang
1
;
2

a

In [ ]:
所以说我们并不能期待它太高标题和姓名中的空格基本上都被掉了这样的话对于大篇幅文本可以说并没什么用处

In [ ]: