在文档处理场景中,经常需要对已有 PDF 文档追加文本内容,比如补充备注、标注说明、添加水印文字、补充页码注释等。Python 拥有丰富的 PDF 处理库,其中 Free Spire.PDF for Python 凭借简洁的 API、完善的样式支持、无需依赖本地 Adobe 组件的优势,能够高效实现 PDF 文本编辑,支持自定义字体、颜色、透明度、文字旋转等个性化效果。

本文将客观、完整地讲解如何使用 Free Spire.PDF 实现 PDF 文本添加,从基础落地代码到进阶样式定制,适配各类 PDF 文本编辑需求。
首先通过 pip 安装 Free Spire.PDF 依赖库,执行以下命令:
pip install spire-pdf-free该库支持 Python3.7 及以上版本,兼容 Windows、Mac、Linux 多平台,安装后可直接调用 API 进行 PDF 编辑操作。
本次实战核心依赖库内常用模块,提前说明核心作用:
基础场景实现加载已有 PDF 文件,在指定页面、指定坐标位置添加自定义文本,同时配置基础字体样式、颜色。以下是完整可运行代码,包含详细注释。
from spire.pdf import PdfDocument, PdfFontStyle, PdfSolidBrush, PdfRGBColor, PointF, PdfCjkStandardFont, PdfCjkFontFamily
# 初始化PDF文档对象并加载本地PDF文件
pdf = PdfDocument()
pdf.LoadFromFile("input.pdf")
# 获取PDF第一页(索引从0开始)
page = pdf.Pages.get_Item(0)
# 配置中文字体:蒙纳黑体、16号字号、加粗样式
font = PdfCjkStandardFont(PdfCjkFontFamily.MonotypeHeiMedium, 16.0, PdfFontStyle.Bold)
# 创建画刷,设置文本颜色:浅橘色
brush = PdfSolidBrush(PdfRGBColor(255,200, 180))
# 定义文本绘制坐标(单位:磅)
location = PointF(72.0, 300.0)
# 在指定位置绘制自定义文本
page.Canvas.DrawString("这是添加的新文本。", font, brush, location)
# 保存修改后的PDF文件
pdf.SaveToFile("添加文本.pdf")
# 关闭文档,释放资源
pdf.Close()代码核心逻辑 :加载文档 → 选中目标页面 → 配置字体与颜色样式 → 定义绘制位置 → 绘制文本 → 保存并释放资源,流程简洁清晰,无冗余操作。
Spire.PDF 支持丰富的文本样式拓展,可灵活适配不同场景的排版需求,包括多类型字体、自定义颜色、文字透明度、文字旋转效果等,下面逐一讲解实战用法。
库中提供三种主流字体创建方式,分别适配中文场景、系统第三方字体、PDF 内置标准字体,同时支持 RGB 任意自定义颜色。
# 方式1:调用系统TrueType字体(Calibri),斜体、字号16,嵌入字体到PDF
font1 = PdfTrueTypeFont("Calibri", 16.0, PdfFontStyle.Italic, True)
# 方式2:调用PDF内置Times Roman标准字体,斜体、字号16
font2 = PdfFont(PdfFontFamily.TimesRoman, 16.0, PdfFontStyle.Italic)
# 自定义森林绿色文本画刷
brush = PdfSolidBrush(PdfRGBColor(34, 139, 34))其中 嵌入字体 可保证 PDF 在任意设备打开时,字体样式不会错乱,适合需要跨设备展示的文档。
通过画布的 SetTransparency 方法可实现文字透明效果,常用于制作轻量化水印、备注文本,透明度参数范围 0.0~1.0,0.0 为完全透明,1.0 为完全不透明。
# 设置文本半透明(透明度0.4)
page.Canvas.SetTransparency(0.4)
# 绘制半透明文本
page.Canvas.DrawString("半透明文字", font, brush, PointF(100.0, 100.0))支持通过画布旋转画布坐标系,实现任意角度的倾斜文字,常用于制作斜向水印、侧边标注文本,逆时针旋转参数为负数,顺时针为正数。
# 画布逆时针旋转45度
page.Canvas.RotateTransform(-45)
# 绘制旋转后的文本
page.Canvas.DrawString("旋转后的文字", font, brush, PointF(100.0, 100.0))注意:画布旋转为全局生效,若需恢复默认角度,可在绘制完成后重置画布变换状态。
Close() 方法,释放文件资源,避免文件占用、内存溢出问题PdfCjkStandardFont 或系统中文字体,避免乱码、字体缺失问题Spire.PDF for Python 提供了极简且强大的 PDF 文本编辑能力,无需复杂编码即可实现 基础文本添加、多字体适配、自定义颜色、透明文本、旋转文字 等常用功能。相比传统 PDF 处理库,其优势在于 API 通俗易懂、样式支持全面、兼容中英文场景,非常适合 PDF 自动化编辑、批量文档处理、水印生成等开发场景。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。