2016-05-21 3 views
-2

これは私がここで見つけたコードです。どのように使用するかわかりません。誰かがこれを通って私を歩いて、私はサンプルPDFを変換するのに役立つことができますか?PDFminerを使用して、PDFから.textファイルにテキストを抽出します。コードを見つけましたが、使用方法はわかりません

from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter 
from pdfminer.converter import TextConverter 
from pdfminer.layout import LAParams 
from pdfminer.pdfpage import PDFPage 
from cStringIO import StringIO 

def convert_pdf_to_txt(path): 
    rsrcmgr = PDFResourceManager() 
    retstr = StringIO() 
    codec = 'utf-8' 
    laparams = LAParams() 
    device = TextConverter(rsrcmgr, retstr, codec=codec, laparams=laparams) 
    fp = file(path, 'rb') 
    interpreter = PDFPageInterpreter(rsrcmgr, device) 
    password = "" 
    maxpages = 0 
    caching = True 
    pagenos=set() 

    for page in PDFPage.get_pages(fp, pagenos, maxpages=maxpages, password=password,caching=caching, check_extractable=True): 
     interpreter.process_page(page) 

    text = retstr.getvalue() 

    fp.close() 
    device.close() 
    retstr.close() 
    return text 
+0

に使うインストールするpdfminer /ツール

に位置していますか? – glls

+0

そうですね。それは何もしません。 – iMiner

+0

ここからコードを抽出したと仮定していますか? https://www.binpress.com/tutorial/manipulating-pdfs-with-python/167 – glls

答えて

2

あなたがpdfminerを使用して、そのページからコードを使用すると、そのドキュメントhttps://www.binpress.com/tutorial/manipulating-pdfs-with-python/167読む場合:

from cStringIO import StringIO 
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter 
from pdfminer.converter import TextConverter 
from pdfminer.layout import LAParams 
from pdfminer.pdfpage import PDFPage 

def convert(fname, pages=None): 
    if not pages: 
     pagenums = set() 
    else: 
     pagenums = set(pages) 

    output = StringIO() 
    manager = PDFResourceManager() 
    converter = TextConverter(manager, output, laparams=LAParams()) 
    interpreter = PDFPageInterpreter(manager, converter) 

    infile = file(fname, 'rb') 
    for page in PDFPage.get_pages(infile, pagenums): 
     interpreter.process_page(page) 
    infile.close() 
    converter.close() 
    text = output.getvalue() 
    output.close 
    return text 

を私はあなたがどんな悩み使用を持ってすべきだと思ういけない:

DEF、FNAME(変換pages = None):基本的にあなたのためのpdfを変換します

some_variable = convert("filename.pdf") 
print(some_variable) 
#do something with your variable 

はあなたの例のPDFファイルを使用して:enter image description here

+0

それは動作します...ちょっと。これは出力でした: This is is pdf 元のPDFは "これはpdf"ですが、pythonには "ThisÂisÂpdf"と表示されます。 – iMiner

+0

は、それを共有できるのですか? – glls

+0

https://drive.google.com/file/d/0B5eGq9boXZxARWJLX0pDb1RaX2s/view?usp=sharing on the google drive。私はそれを共有して以来、あなたはそれをダウンロードできると思います。 – iMiner

0

は最終的に私はこれへの道を見つけました。最適なライブラリはPDfminerであり、pdf2txt.pyでの変更はほとんどありません。 pdf2text.pyは、あなたがそれを実行している試してみましたPDfminerは、端末

pip install PDfminer 

from cStringIO import StringIO 
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter 
from pdfminer.converter import TextConverter 
from pdfminer.layout import LAParams 
from pdfminer.pdfpage import PDFPage 
import re 

def convert(fname): 
    pages=None 
    if not pages: 
     pagenums = set() 
    else: 
     pagenums = set(pages) 

    output = StringIO() 
    manager = PDFResourceManager() 
    converter = TextConverter(manager, output, laparams=LAParams()) 
    interpreter = PDFPageInterpreter(manager, converter) 

    infile = file(fname, 'rb') 
    for page in PDFPage.get_pages(infile, pagenums): 
     interpreter.process_page(page) 
    infile.close() 
    converter.close() 
    text = output.getvalue() 
    output.close 
    print text 

    # write Content to .txt 
    text_file = open("Output_1.txt", "w") 
    text = re.sub("\s\s+", " ", text) 
    text_file.write("%s" % text) 
    text_file.close() 

convert("xyz.pdf") 
関連する問題