gpt4 book ai didi

python - 使用 Textract 提取/抓取 PDF - 不打印文本

转载 作者:太空宇宙 更新时间:2023-11-03 21:21:33 25 4
gpt4 key购买 nike

我正在尝试使用 Textract 提取 doem PDF 文件中的文本。但是,当我打印代码末尾的文本时,它只是打印出很多空白。谁能指出我正在发生的事情的方向吗? (顺便说一下,文本不是=“”)

import os
import codecs
import PyPDF2
import textract
from nltk.tokenize import word_tokenize
from nltk.corpus import stopwords

for filename in os.listdir('Harbour PDF'):
if '.DS_Store' == filename:
continue
filename = 'Harbour PDF/' + filename
print(filename)

pdfFileObj = open(filename,'rb')

pdfReader = PyPDF2.PdfFileReader(pdfFileObj)

num_pages = pdfReader.numPages
count = 0
text = ""

while count < num_pages:
pageObj = pdfReader.getPage(count)
count +=1
text += pageObj.extractText()


if text != "":
text = text
else:
text = textract.process(pdfFileObj, method='tesseract', language='eng')

print(text)

最佳答案

我通过 python 使用 2 个函数(第二个需要 tesseract)。好吧,实际上我更喜欢 tesseract 而不是 pdfminer,但它们实际上做了同样的事情。不确定你的代码有什么问题,但我相信这些是替代的等价物。

from PIL import Image
import pytesseract
import cv2
import os
import subprocess

from pdfminer.converter import TextConverter
from pdfminer.pdfinterp import PDFPageInterpreter
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.pdfpage import PDFPage

#converts pdf, returns its text content as a string
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 = open(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 to_txt(pdf_path, output_dir, name=None):
if not os.path.exists(output_dir):
os.makedirs(output_dir)
if name == None:
parts = pdf_path.split('\\')
fname = parts[-1][:-4] + '.txt'
fname = fname.replace(" ", "_")
end = output_dir + fname
else:
if name[-4:] != '.txt':
name += '.txt'
end = output_dir + name
cmd = ['pdftotext', pdf_path,
end]
subprocess.call(cmd)
print('Converted')

关于python - 使用 Textract 提取/抓取 PDF - 不打印文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54195882/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com