def add_page_num(page, text: str, options): # Get page num information width, height = (inch * options["page-size"]["width"], inch * options["page-size"]["height"]) font, size = (options["page-num-font"]["name"], options["page-num-font"]["size"]) packet = io.BytesIO() # Draw text on canvas page_num = canvas.Canvas(packet, pagesize=(width, height)) page_num.setFont(font, size) page_num.drawCentredString(1.5 * inch, height - (.02 * size * inch), text) page_num.save() # Add page number to existing page packet.seek(0) page_num_pdf = PdfFileReader(packet).getPage(0) page_num_pdf.mergePage(page) return page_num_pdf