Python pyPFD2 PDF crop pages and merge into single page

Viewed 301

Trying to crop a couple of PDF pages and merge them into a single role style page. I need to remove the heather and the footer of each page and create a role style single page

import PyPDF2

from PyPDF2 import PdfFileReader, PdfFileWriter
from PyPDF2.pdf import PageObject

reader = PdfFileReader('/Users/kic/Desktop/test.pdf','r')
writer = PdfFileWriter()

### find Total Height of file ###

numpages = reader.getNumPages() ## get number of pages
Height = reader.getPage(0).mediaBox.getHeight() ## get height of title page
Height = Height + 482 * (reader.getNumPages()-2) ## add number of height crop pages

### create new single role page ###

Single_page = PageObject.createBlankPage(None, reader.getPage(0).mediaBox.getWidth(),    Height)
### add first title page without croping ###

Single_page.mergeTranslatedPage(reader.getPage(0),0,Height-reader.getPage(0).mediaBox.getHeight(),False)

### loop through all pages from page 2 until last page ###

n=1
for i in range(reader.getNumPages()-1):
    
    i=n
    page = reader.getPage(i)

    page.cropBox.setUpperLeft((0,556))
    page.cropBox.setUpperRight((page.mediaBox.getWidth(),556))
    page.cropBox.setLowerLeft((0,74))
    page.cropBox.setLowerRight((page.mediaBox.getWidth(),74))

    Single_page.mergeTranslatedPage(page,0,482*(numpages-1-n),False)

    #writer.addPage(page) ##to see the result of the cropped pages without merging
    n = n+1

writer.addPage(Single_page)

output = open('/Users/kic/Desktop/testrcrop.pdf','wb')
writer.write(output)
output.close()

for some reason it is not cropping, its merging the pages into 1 page, but the heather and footer go on top of each other. However if I don't merge into 1 page and just write the cropped pages into a PDF file with several pages they show up cropped.

0 Answers
Related