python pacakge pdf_redactor не различает "." - PullRequest
0 голосов
/ 12 мая 2019

Попытка изменить и заменить цены (конфиденциальную информацию) в формате PDF пустой строкой. Использовал pdf_redactor и смог запустить его из командной строки, но происходит нечто странное.

Под ценами я подразумеваю следующие: 10,10, 4,60, 15982,00, 326,59 и т. Д. Используемое регулярное выражение: u "[0-9] * (\,) [0-9] {2}"

То, что происходит, - четные числа, такие как 10, 500, 1521 и т. Д. Без десятичных точек, также не отображаются. Мне нужны эти числа без каких-либо десятичных знаков, поскольку они представляют заказанные количества, а также количества картонных коробок, которые являются важной информацией для хранения.

Что я подозреваю, так это то, что pdf действительно закодирован так, что даже целые числа, например 10, на самом деле 10.00?

Здесь вы можете получить pdf_redactor. https://github.com/JoshData/pdf-redactor

Похоже, это лучшее / самое простое решение. Использовать прямоугольники, чтобы скрыть чувствительные части в pdf, для начинающего программиста, такого как я, сложнее. Не говоря уже о том, что PDF-файлы представлены на разных страницах, а таблицы расположены в разных местах в зависимости от размера заказа.

Я проверил свое регулярное выражение, и оно кажется правильным.

Сохраните этот код в файле скажем red.py. Ниже приведен код, который является упрощенной версией из pit_redactor git hub:

из редактора импорта pdf_redactor из pdf_redactor импортировать RedactorOptions импорт re

    #Set options.
    redactor_options = RedactorOptions()

    redactor_options.content_filters = [

    (re.compile(u"Cost Price"), lambda m : ""), #just replaces "Cost price" found in the pdf with ""
    (re.compile(u"Cost"), lambda m : ""), #just replaces "Cost" found in the pdf with ""
    (re.compile(u"Value Price"),lambda m : ""), #just replaces "Value Price" found in the pdf with ""
    (re.compile(u"[0-9]*(\.)[0-9]{2}"), lambda m : ""), #this where i input the regex and it searches for prices and replaces it with "" 

    ]

    redactor(redactor_options)

Затем я запускаю в командной строке: python red.py bnew.pdf

В моем файле bnew.pdf «Себестоимость», «Сметная цена» и «Себестоимость» корректно отключены, как и ожидалось, но все цены ушли (что хорошо), но так же, как и количество в моей коробке и количество заказа которые являются целыми числами.

Телефонные номера не закрыты. «Тел .: 12 12345 1234» и почтовые индексы целых чисел также не закрываются.

Я также скопировал эти целые числа и просто вставил их в текстовый файл. 30 - это 30 в текстовом файле, а не как если бы они были скопированы как 30.00. Так что я действительно нахожусь в тупике.

Если кто-то может мне помочь, по-настоящему это оценит.

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