Удаление последней страницы PDF с использованием Python или Bash - PullRequest
0 голосов
/ 04 июля 2018

У меня есть около 500 PDF-файлов, в которых последняя страница не требуется. Могу ли я написать скрипт, используя любой инструмент, использующий командную строку, который может перебрать все файлы, удалить последнюю страницу и сохранить новый файл?

Я исследовал Интернет, и pdftk был наиболее приемлемым вариантом, но он больше не работает в Ubuntu.

Помощь будет оценена.

Спасибо

Ответы [ 3 ]

0 голосов
/ 04 июля 2018

Вы можете использовать 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
0 голосов
/ 04 июля 2018

Я использовал 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()
0 голосов
/ 04 июля 2018

Конечно, вы можете сделать это с PyPDF2 . Прочитайте на всех страницах, затем запишите каждую страницу минус последнюю (используя цикл for или что-то подобное)

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