我有一个包含多个字段的PDF表单。我想从这些字段中抓取值(仅数字)。
我正在使用以下代码读取文件,并且我可以做两件事- 1.打印整个文件 2.只打印数字
有没有一种方法可以将这些数字打印在其页面编号或沿此行的位置上,以便我可以轻松地分隔所需的数字?
from pdfminer.converter import TextConverter
from pdfminer.pdfinterp import PDFPageInterpreter
from pdfminer.pdfinterp import PDFResourceManager
from pdfminer.pdfpage import PDFPage
def extract_text_from_pdf(pdf_path):
resource_manager = PDFResourceManager()
fake_file_handle = io.StringIO()
converter = TextConverter(resource_manager, fake_file_handle)
page_interpreter = PDFPageInterpreter(resource_manager, converter)
with open(pdf_path, 'rb') as fh:
for page in PDFPage.get_pages(fh,
caching=True,
check_extractable=True):
page_interpreter.process_page(page)
text = fake_file_handle.getvalue()
converter.close()
fake_file_handle.close()
if text:
return text
import re
if __name__ == '__main__':
string = extract_text_from_pdf('PDF.pdf')
string = re.sub('[^0-9]', '', string)
print (string)
答案 0 :(得分:0)
因此,如果您想要的数字具有定义的数字位数,则可以使用正则表达式。 假设您要给定示例中的数字-3010405008667 使用:re.compile(r'^ [0-9] {13}') 您可以对页面数执行相同的操作 假设您的页面不超过1000页: 用途:re.compile(r'^ [0-9] {1-4}')