Удалить номер страницы, верхний и нижний колонтитулы из файла PDF

Я хочу разобрать файл PDF, для этого я использую утилиту pdftotext, которая преобразует файл PDF в текстовый файл, теперь я хочу удалить номер страницы, верхний и нижний колонтитулы из текстового файла.

Я конвертирую файл PDF, используя следующий синтаксис:

pdftotext -layout input.pdf output.txt

Может ли кто-нибудь помочь мне в этом?


person Deepti Kakade    schedule 12.01.2015    source источник


Ответы (2)


Вам нужно обрезать с параметрами -H -W -y -x, как минимум -H -W -y.

Пример:

pdftotext -y 80 -H 650 -W 1000 -nopgbrk -eol unix example.pdf


-y 80   -> crop 80 pixels after the top of file (remove header);
-H 650  -> crop 650 pixels after the -y has cropped (remove footer);
-W 1000 -> hight value to crop nothing (need especify something);

Вам нужно настроить -y и -H для каждого PDF-файла, иногда уменьшая -y и увеличивая -H, чтобы они соответствовали верхнему и нижнему колонтитулу;

person Reinaldo Gil    schedule 26.01.2016
comment
Как посчитать количество пикселей? - person TatianaP; 28.02.2018
comment
@TatianaP Значение по умолчанию — 72 DPI (точек на дюйм), поэтому вы можете измерить в дюймах и умножить на 72. - person Andrew; 13.07.2019
comment
есть идеи, как это использовать, если у вас Windows 10? - person Raghav Gupta; 13.05.2021
comment
@RaghavGupta stackoverflow.com/questions/18381713/ - person Reinaldo Gil; 14.05.2021
comment
@ReinaldoGil Я проверил все ссылки по этому поводу. К сожалению, вопрос больше ориентирован на загрузку pdftotext, который у меня есть, и некоторые решения, которые они упомянули, сейчас не работают. Я нашел решение, используя pdfplumber, которое намного лучше и дает полный контроль над страницами. - person Raghav Gupta; 14.05.2021

Найдите шаблон, который показывает, что у вас есть номер страницы или верхний или нижний колонтитул! Например, когда я использовал pdftotext для преобразования файла PDF в текст, я понял, что числовые страницы стоят в тексте отдельно, поэтому я использовал регулярные выражения, чтобы заменить их следующим образом:

for root, dirs, files in os.walk(src, topdown=False):
    for name in files:
        if name.endswith('.txt'):
            with open(os.path.join(root, name), "r") as fin:
                 data = fin.read()    
                 new_text = re.sub(r'\n\d+\n\s','',data,re.DOTALL)

Потому что каждый номер страницы был в строке (без какого-либо другого текста), и после этого номера у меня была новая строка. Я сделал то же самое для верхнего и нижнего колонтитула файла PDF.

person bettas    schedule 10.04.2015