在不创建fi的情况下将pdf转换为文本

2024-05-17 08:09:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从一个网站下载pdf文件,并与文本一起工作。但是,我不想创建一个pdf文件然后将其转换为文本。我使用python请求。有没有办法直接在下面的代码后面得到文本?在

res = requests.get(url, timeout=None)


Tags: 文件代码文本noneurlgetpdf网站
2条回答

AFAIK, you will have to at least create a temp file so that you can perform your process.

您可以使用以下代码获取/读取PDF文件并将其转换为文本文件。 这将使用PDFMINER和python3.7。在

from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import HTMLConverter,TextConverter,XMLConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
import io

def convert(case,fname, pages=None):
    if not pages:
        pagenums = set()
    else:
        pagenums = set(pages)
    manager = PDFResourceManager()
    codec = 'utf-8'
    caching = True
    output = io.StringIO()
    converter = TextConverter(manager, output, codec=codec, laparams=LAParams())
    interpreter = PDFPageInterpreter(manager, converter)
    infile = open(fname, 'rb')
    for page in PDFPage.get_pages(infile, pagenums, caching=caching, check_extractable=True):
        interpreter.process_page(page)

    convertedPDF = output.getvalue()
    print(convertedPDF)

    infile.close()
    converter.close()
    output.close()
    return convertedPDF

调用上述程序的主函数:

^{pr2}$

当然,你可以对它进行更多的调整,也许还有更大的改进空间,但这件事肯定会奏效。在

Just make sure instead of providing pdf folder provide a temp pdf file directly.

希望这对你有帮助…快乐的编码!在

如果只需要文本,PyPDF2可以正常工作

在anaconda终端(或)cmd提示符上安装PyPDF2包https://pypi.org/project/PyPDF2/

pip install PyPDF2

您可以使用以下代码获取/读取PDF文件并将其转换为文本文件

import PyPDF2
from PyPDF2 import PdfFileReader, PdfFileWriter
def getText2PDF(pdfFileName,password=''):
    pdf_file=open(pdfFileName,'rb')
    read_pdf=PyPDF2.PdfFileReader(pdf_file)
    if password !='':
        read_pdf.decrypt(password)
    text=[]
    for i in range(0,read_pdf.getNumPages()):
        text.append(read_pdf.getPage(i).extractText())
    return ('\n'.join (text).replace("\n",''))


getText2PDF('0001.pdf')

今天从使用NLTK的源文本处理中找到了解决方案。在

对我很有用

相关问题 更多 >