Python: печать конкретных номеров из файла PDF - PullRequest
0 голосов
/ 01 ноября 2018

Example of the type of form I have

У меня есть PDF-форма с несколькими полями. Я хочу очистить значения (только цифры) от этих полей.

Я читаю файл, используя следующий код, и я могу сделать 2 вещи: 1. распечатать весь файл 2. Печатайте только цифры

Есть ли способ, которым я мог бы напечатать эти числа с их страницей no или что-то в этой строке, чтобы я мог легко отделить числа, которые я хочу?

  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 голосов
/ 01 ноября 2018

Итак, если нужное число имеет определенное количество цифр, вы можете использовать регулярное выражение. Допустим, вам нужен номер в приведенном вами примере - 3010405008667 Используйте: re.compile (r '^ [0-9] {13}') Вы можете сделать то же самое для количества страниц Если у вас есть не более 1000 страниц: используйте: re.compile (r '^ [0-9] {1-4}')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...