def assembleBooklet(inFilename, outFilename, opts): """ """ opts.paperSize = getattr(pagesizes, opts.paperSize) blank, canvas = createBlankPDF(StringIO(), opts) reader, writer, stream = _prepFiles(inFilename, outFilename) pf = booklet.pechaFactory(reader.getNumPages()) for sheet in pf.sheets: page = side = None for block in sheet.blocks: if side != block.side: if page != None: # finish up the old page writer.addPage(page) # make new PDF page page = PdfFileReader(blank).getPage(0) side = block.side blockPDF = reader.getPage(block.number - 1) # crop the page to pecha size params = ( reader.getPage(index), 0, pechaHeight, float(opts.paperSize[1]), float(opts.paperSize[0])) blockPDF = cropPDFPage(*params) # rotate if need be if block.orientation == UPSIDEDOWN: blockPDF.rotateClockwise(180) # figure out where on the page to put it blockPDF = placeBlock(blockPDF, block.location) page.mergePage(blockPDF) writer.write(stream) stream.close() blank.close()
def cropAndRotateFile(inFilename, outFilename, opts=None): """ """ reader, writer, stream = _prepFiles(inFilename, outFilename) pf = booklet.pechaFactory(reader.getNumPages()) for index, block in enumerate(pf.getBlockList()): page = cropPDFPage(reader.getPage(index)) if block.orientation == const.UPSIDEDOWN: page.rotateClockwise(180) writer.addPage(page) writer.write(stream) stream.close()