

Python速成心法
敲代码,查资料,问Ai
练习,探索,总结,优化

★★★★★博文创作不易,源码代码的过程中,如有疑问的地方,欢迎大家指正留言交流。喜欢的老铁可以多多点赞+收藏分享+置顶,小红牛在此表示感谢。★★★★★
office办公python代码:reportlab模块参数的用法及示例
office办公python代码:PDF书籍封面生成器1.0(tk+reportlab)
office办公python代码:批量对所有.pdf文件生成水印(pypdf+reportlab)
pip install PyMuPDFimport fitz # PyMuPDFdef add_page_numbers(input_pdf, output_pdf, position="bottom"):doc = fitz.open(input_pdf)total = len(doc)for page_num in range(total):page = doc[page_num]rect = page.rect# 文本位置:底部居中(距下边缘50像素)x = rect.width / 2y = rect.height - 20 if position == "bottom" else 20# 插入页码text = f"{page_num + 1} / {total}"page.insert_text((x, y), # 坐标text, # 内容fontsize=12, # 字号color=(0, 0, 0), # 黑色)doc.save(output_pdf)doc.close()add_page_numbers("素书.pdf", "新pdf.pdf")
pip install pypdf reportlab
# -*- coding: utf-8 -*-# @Author : 小红牛# 微信公众号:wdPythonfrom pypdf import PdfReader, PdfWriterfrom reportlab.pdfgen import canvasfrom reportlab.lib.pagesizes import letterfrom reportlab.pdfbase import pdfmetricsfrom reportlab.pdfbase.ttfonts import TTFontimport ioimport osdef add_pages_kai_pypdf(input_pdf, output_pdf):# 楷体字体路径(请根据系统修改)font_path = r"C:\Windows\Fonts\楷体.ttf"if not os.path.exists(font_path):# 尝试别名font_path = r"C:\Windows\Fonts\SIMKAI.TTF"if not os.path.exists(font_path):raise FileNotFoundError("未找到楷体字体文件,请提供正确的路径")# 注册字体(名称可自定义,如 'KaiTi')pdfmetrics.registerFont(TTFont('KaiTi', font_path))reader = PdfReader(input_pdf)writer = PdfWriter()total = len(reader.pages)for i, page in enumerate(reader.pages):packet = io.BytesIO()# 创建画布,尺寸与原始页相同(取第一页尺寸,若各页不同需额外处理)page_width = float(page.mediabox.width)page_height = float(page.mediabox.height)c = canvas.Canvas(packet, pagesize=(page_width, page_height))# 设置字体为注册的楷体c.setFont('KaiTi', 12)# 底部居中(y 坐标距离底边 20)c.drawCentredString(page_width / 2.0, 20, f"{i+1} / {total}")c.save()packet.seek(0)watermark = PdfReader(packet).pages[0]page.merge_page(watermark)writer.add_page(page)with open(output_pdf, "wb") as f:writer.write(f)# 执行函数add_pages_kai_pypdf("素书.pdf", "新pdf.pdf")
方案对比
完毕!!感谢您的收看
------★★历史博文集合★★------

夜雨聆风