Python:从PDF文件打印特定数字

时间:2018-11-01 05:11:04

标签: python python-3.x pdf

Example of the type of form I have

我有一个包含多个字段的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)

1 个答案:

答案 0 :(得分:0)

因此,如果您想要的数字具有定义的数字位数,则可以使用正则表达式。 假设您要给定示例中的数字-3010405008667 使用:re.compile(r'^ [0-9] {13}') 您可以对页面数执行相同的操作 假设您的页面不超过1000页: 用途:re.compile(r'^ [0-9] {1-4}')