Удаление последней страницы PDF с использованием Python или Bash
У меня есть около 500 PDF-файлов, в которых последняя страница не требуется. Могу ли я написать скрипт, используя любой инструмент, использующий командную строку, который может перебрать все файлы, удалить последнюю страницу и сохранить новый файл?
Я исследовал в Интернете, и pdftk был наиболее жизнеспособным вариантом, но он больше не работает в Ubuntu.
Помощь будет оценена.
Спасибо
3 ответа
Ты можешь использовать pdfinfo
для того, чтобы получить количество страниц из PDF и ghostscript
удалить последний:
#!/bin/bash
for file in *.pdf
do
page_nb=$(pdfinfo $file | awk '/^Pages/ { print $2 }')
file_name=$(echo $file | cut -d'.' -f 1)
gs -sDEVICE=pdfwrite -dNOPAUSE -dQUIET -dBATCH -dFirstPage=1 -dLastPage=$(expr $page_nb - 1) -sOutputFile=$file_name"_without_last_page.pdf" $file
done
Я использовал PyPDF2 и использовал следующий код. Мне удалось удалить все страницы, которые мне не нужны.
import PyPDF2 as pdf
pdf_file = open('361.pdf','rb')
read_file = pdf.PdfFileReader(pdf_file) #the file object that has been read
num_pages = read_file.numPages
wrote_pdf = pdf.PdfFileWriter() #the file object which is to be written
for pageNum in range(2,num_pages-1):
pageObj = read_file.getPage(pageNum)
wrote_pdf.addPage(pageObj)
output_pdf = open('361edited.pdf','wb')
wrote_pdf.write(output_pdf)
output_pdf.close()
pdf_file.close()
Конечно, вы можете сделать это с PyPDF2. Прочитайте все страницы, затем запишите каждую страницу минус последнюю (используя цикл for или что-то подобное)