pdf 添加页脚
import PyPDF2 from PyPDF2 import PdfWriter, PdfReader from reportlab.pdfgen import canvas from reportlab.lib.pagesizes import letter import io from reportlab.pdfbase import pdfmetrics from reportlab.pdfbase.ttfonts import TTFont from reportlab.lib.styles import getSampleStyleSheet from reportlab.platypus import Paragraph # 注册字体(假设使用Arial字体,可替换为其他字体文件路径) pdfmetrics.registerFont(TTFont('Arial', 'Arial.ttf')) def add_footer(input_pdf_path, output_pdf_path): """ 函数功能:给指定的PDF文件添加页脚,并将结果保存为新的PDF文件。 参数: - input_pdf_path:输入的PDF文件路径,即要添加页脚的原始PDF文件路径。 - output_pdf_path:输出的PDF文件路径,添加页脚后生成的新PDF文件将保存到此处。 """ packet = io.BytesIO() # 创建一个新的PDF对象用于绘制页脚(这里使用reportlab库来绘制内容) can = canvas.Canvas(packet, pagesize=letter) footer_text = "123" # 获取页面数量的循环,这里假设最多100页,实际应用中可根据情况调整 for page_num in range(1, 100): # 使用reportlab的Paragraph类来绘制页脚文本,可灵活设置格式和位置 styles = getSampleStyleSheet() # 获取正文样式 normal_style = styles['Normal'] # 设置字体大小为12(可根据需求调整大小) normal_style.fontSize = 8 # 创建Paragraph对象,包含当前页脚文本 p = Paragraph(footer_text.format(page_num), normal_style) # 为Paragraph对象设置宽度和高度,避免出现属性缺失问题 width, height = letter p.wrap(width, height) # 设置文本位置,横坐标为50,纵坐标为30(单位是点,可根据实际需求调整位置) p.drawOn(can, 50, 30) # 以下是使用drawString方法绘制文本的方式(更简单直接,也可按需选择使用) # can.setFont('Arial', 12) # 设置字体为Arial,大小为12(可替换字体及调整大小) # can.drawString(50, 30, footer_text.format(page_num)) # 设置文本位置及绘制文本 can.showPage() can.save() packet.seek(0) new_pdf = PdfReader(packet) existing_pdf = PdfReader(open(input_pdf_path, 'rb')) output = PdfWriter() num_pages = len(existing_pdf.pages) for i in range(num_pages): page = existing_pdf.pages[i] page.merge_page(new_pdf.pages[i % len(new_pdf.pages)]) output.add_page(page) with open(output_pdf_path, 'wb') as output_stream: output.write(output_stream)
如果觉得对您有帮助,麻烦您点一下推荐,谢谢!
好记忆不如烂笔头
好记忆不如烂笔头
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步