Возможно, вы захотите использовать для этого регулярное выражение. Я не знаю точный формат вашего PDF, но он должен выглядеть примерно так:
import re
pdfDocument = ''' somestuff
asdad
dasdd Invoice Number: 678903 other stuff
rest of the stuff '''
str2 = re.search(r'Invoice Number: [0-9]*', pdfDocument)
str2 = str2.group(0)
print(str2)
Это вернет только строку «Номер счета: 678903». Возможно, вам придется настроить регулярное выражение соответственно. regexr - очень удобный инструмент для разработки регулярных выражений
EDIT:
Это больше относится к номеру счета-фактуры. Если у него есть какие-то специальные ключи, кроме десятичных цифр, вы должны настроить регулярное выражение. Я нашел один инструмент, который может найти значение на основе его местоположения в файле, но я никогда не использовал его, и я не знаю, будет ли он работать в вашем случае. Также я думаю, что вы должны заплатить за это. Кроме того, я не думаю, что доверял бы им достаточно для обработки моих конфиденциальных данных. docparser
Я думаю, что самый простой способ по-прежнему - анализировать pdf в тексте и искать с помощью regexp. Я понял, что, возможно, разбор PDF в TXT может быть проблематичным для вас. Я бы предложил использовать Тика для этого. Его легко установить, если у вас есть пункт:
pip3 install tika
Затем я сделал фиктивный PDF-документ с латексом и скрытым номером счета-фактуры:
![Dummy pdf](https://i.stack.imgur.com/fQMtI.png)
Вот код:
import re
from tika import parser
raw = parser.from_file('report.pdf')
pdfDocument = raw['content']
str2 = re.search(r'Invoice Number: [0-9]*', pdfDocument)
str2 = str2.group(0)
print(str2)