需求:使用Python在PDF所有页脚添加本地图片且不影响原内容
Python脚本:为PDF所有页面添加页脚Logo
所需依赖
先安装处理PDF的高效库PyMuPDF:
pip install pymupdf
完整脚本
import fitz # PyMuPDF def add_footer_logo(input_pdf_path, output_pdf_path, logo_path, bottom_margin=20, scale=0.2): # 打开原始PDF pdf_doc = fitz.open(input_pdf_path) # 获取Logo原始尺寸 logo_rect = fitz.Rect(0, 0, 0, 0) try: logo_rect = fitz.open(logo_path).rect except Exception as e: print(f"加载Logo失败: {e}") return # 计算缩放后的Logo尺寸 scaled_width = logo_rect.width * scale scaled_height = logo_rect.height * scale # 遍历每一页插入Logo for page in pdf_doc: page_rect = page.rect # 计算位置:水平居中,距离底部指定像素 x = (page_rect.width - scaled_width) / 2 y = bottom_margin # PyMuPDF以页面左下角为原点,y值对应距离底部的高度 # 插入图片到底层,避免遮挡原有内容 page.insert_image( fitz.Rect(x, y, x + scaled_width, y + scaled_height), filename=logo_path, overlay=False ) # 保存处理后的PDF pdf_doc.save(output_pdf_path) pdf_doc.close() print(f"处理完成,输出文件:{output_pdf_path}") # 示例用法 if __name__ == "__main__": INPUT_PDF = "input.pdf" # 本地PDF文件路径 OUTPUT_PDF = "output.pdf" # 输出PDF路径 LOGO_PATH = "logo.png" # 本地Logo图片路径 add_footer_logo(INPUT_PDF, OUTPUT_PDF, LOGO_PATH, bottom_margin=25, scale=0.15)
关键说明
overlay=False:强制Logo位于页面底层,完全不会遮挡原有内容bottom_margin:调整Logo距离页面底部的像素距离,按需修改即可scale:控制Logo的缩放比例,避免尺寸过大或过小- 坐标系规则:PyMuPDF以页面左下角为原点,x轴向右递增,y轴向上递增
注意事项
- 确保目标PDF未加密,加密文件需先解密才能处理
- 支持PNG、JPG、BMP等常见图片格式
- 若位置不符合预期,可微调
bottom_margin和scale参数
内容的提问来源于stack exchange,提问作者d_k
相关产品推荐
相关产品推荐

