擅长:python、mysql、java
<p>这段代码可能对您有用,我在以前的一个项目中使用了它,在这个项目中,我从pdf中提取了数据。我不确定你是否试过使用pytesseract。您可以修改for page in pages循环以提取特定页面。这段代码将把PDF转换成图像,然后使用OCR处理并返回一个包含找到的文本的文本文件。你知道吗</p>
<pre><code>from pdf2image import convert_from_path
from PIL import Image
import pytesseract
import os
def OCR(pdf):
pdfName = pdf.split('.pdf')[0]
pages = convert_from_path(pdf, 500)
image_counter = 1
for page in pages:
filename = "page_"+str(image_counter)+".jpg"
page.save(pdfName+filename, 'JPEG')
image_counter = image_counter + 1
filelimit = image_counter-1
f= open(pdfName+".txt","wb")
text = ''
for i in range(1, filelimit + 1):
filename = pdfName+"page_"+str(i)+".jpg"
text += str(((pytesseract.image_to_string(Image.open(filename)))))
text = text.replace('-\n', '')
text = text.replace('\n',' \n')
os.remove(pdfName+"page_"+str(i)+".jpg")
f.write(text.encode('utf-8','replace'))
f.close()
return text
</code></pre>