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

Я не хочу обрезать внутреннюю сторону страницы для печати. ​​Я хочу найти объект меток и удалить их со страниц.

0
Farahats9 22 Окт 2019 в 04:35

1 ответ

Вы можете попробовать мой PrintManager, написанный на pyqt5 Printmanager

Я использую что-то подобное для страницы обрезки (удалить метки обрезки)

def pdf_get_num_pages(pdf_input):
 pdf_file = PdfFileReader(open(pdf_input, 'rb'))
 pages = pdf_file.getNumPages()
 return pages

def pdf_cropper(pdf_input,outputpdf,pages):
 pdf_file = PdfFileReader(open(pdf_input, 'rb'))
 output = PdfFileWriter()
  for i in range(pages):
   page = pdf_file.getPage(i)
   # print ('TRIMBOX'+ str(i) + ':' +str(page.trimBox))
   # print ('CROPBOX'+ str(i) + ':' +str(page.cropBox))
   # print ('cropbox to crop' + str(cropboxes[0]))
   page.cropBox.upperLeft = (page.trimBox[0], page.trimBox[1])
   page.cropBox.lowerRight = (page.trimBox[2], page.trimBox[3])
   page.mediaBox.upperLeft = (page.trimBox[0], page.trimBox[1])
   page.mediaBox.lowerRight = (page.trimBox[2], page.trimBox[3])
   # print ('output cropbox XXXX' +str(page.cropBox))
   output.addPage(page)

def remove_cropmarks_mod(pdf_input,multipage):
 head, ext = os.path.splitext(pdf_input)
 outputpdf = head + '_crop' + ext
 pages = pdf_get_num_pages(pdf_input)
 pdf_cropper(pdf_input,outputpdf,pages)

if __name__ == '__main__':
 pdf_input = '/Users/xxx/Desktop/file.pdf'
 remove_cropmarks_mod(pdf_input,multipage=True)
1
Paddy Popeye 9 Май 2020 в 09:21