2016-11-17 36 views
0

我想從pdf中提取文本,這在多次討論中,但仍然無法提取pdf,保留單詞之間的空格。使用pdfminer提取pdf並用空格

$python3 
Python 3.5.2 (default, Sep 14 2016, 11:28:32) 
[GCC 6.2.1 20160901 (Red Hat 6.2.1-1)] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import PyPDF2 
>>> pdfFileObj = open('/var/tmp/acs%2Eaccounts%2E6b00452.pdf','rb') 
>>> pdfReader = PyPDF2.PdfFileReader(pdfFileObj) 
>>> pageObj = pdfReader.getPage(0) 
>>> pageObj.extractText() 

這是yeilding:

「TowardtheRationalDesignofNovelNoncentrosymmetricMaterials:\ nFactorsIn \ nuencingtheFrameworkStructures \ nKangMinOk \ n * DepartmentofChemistry,仲AngUniversity,84Heukseok-RO,銅雀區,Seoul06974,RepublicofKorea \ nCONSPECTUS:固體材料的結構相關性和特點。許多材料在非中心對稱(NCS)空間羣中存在着重要的重要性,它們可能具有超強功能性質的各種性質

,但是,如果我直接在終端使用pdf2txt.py,我得到:

$pdf2txt.py '/var/tmp/acs%2Eaccounts%2E6b00452.pdf'| more 

我得到的輸出:

文章

pubs.acs.org/accounts

面向新型非中心對稱材料的合理設計: 影響框架結構的因素

抗敏好*

化學,中央大學,84黑石洞-RO, 銅雀區,漢城06974,韓國

共和國

概論部:全固態用料與擴展結構有 顯示了許多有趣的結構相關特徵。間 已引起大量關注可歸因於多種高超 功能性質的蘇

這是所期望的輸出 許多,材料非中心對稱(NCS)空間羣結晶。

我沒有得到我在做我的Python腳本錯誤。 請幫忙。

回答

0

遇到了同樣的問題。通過深入研究pdf2txt.py腳本解決。

我敢打賭pdf2txt.py是從pdfMinerpdfMiner.six for python3)。

您應該在pdfminer.layout.LAParams()中添加參數。

if not no_laparams: 
    laparams = pdfminer.layout.LAParams() 
    for param in ("all_texts", "detect_vertical", "word_margin", "char_margin", "line_margin", "boxes_flow"): 
     paramv = locals().get(param, None) 
     if paramv is not None: 
      setattr(laparams, param, paramv) 
else: 
    laparams = None 

要了解有關參數的更多信息。看看this post