没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:吉炜炜|2025-07-17 11:34:08.500|阅读 42 次
概述:相比手动操作或依赖复杂工具,使用专业的 PDF 库能让你通过几行代码精准地控制文本位置、样式和内容。本文将借助功能强大的 Spire.PDF for Python 库,演示如何实现这些操作。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
在处理 PDF 时,向文档中添加文字是非常常见的场景,比如自动生成报告、插入批注说明、填写表单模板或添加版本标记等。借助 Python 向 PDF 插入文本,可以大幅提升文档处理的灵活性与自动化效率。
相比手动操作或依赖复杂工具,使用专业的 PDF 库能让你通过几行代码精准地控制文本位置、样式和内容。E-iceblue旗下Spire系列产品,是文档处理组件领域的佼佼者,支持国产化信创。本文将介绍,如何借助功能强大的 Spire.PDF for Python 库,演示如何实现这些操作。
加入Spire技术交流QQ群(125237868),与更多开发者一起提升文档开发技能。
开始前,请先安装 Spire.PDF for Python:
pip install Spire.PDF
选择 Spire.PDF 的理由:
如果你需要从零创建一个 PDF 文件并写入文字,以下示例展示了如何在空白页面中插入带有自定义样式的文本内容。
from spire.pdf import PdfDocument, PdfTrueTypeFont, PdfFontStyle, PdfSolidBrush, PdfRGBColor, PointF, RectangleF, \ PdfStringFormat, PdfTextAlignment, PdfVerticalAlignment # 创建一个新的 PDF 文档并添加一页 pdf = PdfDocument() page = pdf.Pages.Add() # 要绘制的文本内容(示例字符串) text = ("本报告总结了 2025 年第一季度各类产品的销售表现。" + "以下是按产品类别划分的总销售额明细," + "随后是各个地区的销售对比分析。") # 设置字体、画刷和起始坐标点 font = PdfTrueTypeFont("微软雅黑", 14.0, PdfFontStyle.Regular, True) # 使用 Arial 字体,14号,常规样式,嵌入字体 brush = PdfSolidBrush(PdfRGBColor(0, 0, 0)) # 使用黑色实心画刷 point = PointF(50.0, 100.0) # 文本起始绘制坐标(未被实际使用) # 设置文本布局区域和格式 layoutArea = RectangleF(50.0, 50.0, page.GetClientSize().Width - 100.0, page.GetClientSize().Height) # 从页面距离左边 50、高度 50 的位置开始绘制文本,宽度为页面宽度减去两侧各 50 的边距,高度为整页高度 stringFormat = PdfStringFormat(PdfTextAlignment.Left, PdfVerticalAlignment.Top) # 文本左对齐,垂直顶部对齐 # 在页面上绘制文本 page.Canvas.DrawString(text, font, brush, layoutArea, stringFormat, False) # 保存 PDF 文件并关闭文档 pdf.SaveToFile("output/new.pdf") pdf.Close()
要点说明:
生成的 PDF 文件:
提示: 若有多段文字或需手动换行,可调整 Y 坐标或多次调用 DrawString() 分段插入。
若你希望在现有 PDF 文档中添加文字,可通过加载 PDF、定位页面,并指定位置插入文本。
常见应用场景:
from spire.pdf import PdfDocument, PdfFontStyle, PdfSolidBrush, PdfRGBColor, PointF, PdfCjkStandardFont, PdfCjkFontFamily # 加载已有的 PDF 文档 pdf = PdfDocument() pdf.LoadFromFile("input.pdf") # 从文件加载 PDF page = pdf.Pages[0] # 获取第一页 # 设置字体为 Times Roman,字号 12,加粗 font = PdfCjkStandardFont(PdfCjkFontFamily.MonotypeHeiMedium, 16.0, PdfFontStyle.Bold) # 使用红色画刷 brush = PdfSolidBrush(PdfRGBColor(255, 0, 0)) # 红色 # 设置文本绘制位置 location = PointF(150.0, 110.0) # 在指定位置绘制文本 page.Canvas.DrawString("本文件已批准。", font, brush, location) # 保存修改后的 PDF 文件 pdf.SaveToFile("output/modified.pdf") pdf.Close()
要点说明:
保存的 PDF 文件:
通过调整坐标参数,即可灵活控制文本位置。
添加文本不仅仅是插入内容,更重要的是其呈现方式。Spire.PDF 支持多种文本样式控制,包括字体、颜色、对齐方式、透明度和旋转角度,常用于水印或提示标签。
# 创建 PdfTrueTypeFont(使用系统中的 Calibri 字体,16号,斜体,嵌入字体) font = PdfTrueTypeFont("Calibri", 16.0, PdfFontStyle.Italic, True) # 创建 PdfFont(使用内置 Times Roman 字体,16号,斜体) font = PdfFont(PdfFontFamily.TimesRoman, 16.0, PdfFontStyle.Italic) # 创建 PdfBrush,用于设置文本绘制颜色 brush = PdfSolidBrush(PdfRGBColor(34, 139, 34)) # 森林绿(forest green)
PdfTrueTypeFont 支持将字体嵌入 PDF,确保在不同设备上显示一致。如需减小文件体积,可使用系统字体(不嵌入)。
# 保存当前画布状态 state = page.Canvas.Save() # 设置半透明效果(0.0 = 完全透明,1.0 = 完全不透明) page.Canvas.SetTransparency(0.4) # 将原点移动到页面中心 page.Canvas.TranslateTransform(page.Size.Width / 2, page.Size.Height / 2) # 将画布逆时针旋转 45 度 page.Canvas.RotateTransform(-45) # 在新的原点位置绘制文本 page.Canvas.DrawString("草稿", font, brush, PointF(-50, -20))
透明度与旋转角度的结合,常用于创建水印、对角标记等视觉效果。
from spire.pdf import PdfDocument, PdfTrueTypeFont, PdfFontStyle, PdfSolidBrush, PdfRGBColor, PointF from spire.pdf.common import Color # 加载已有的 PDF 文档 pdf = PdfDocument() pdf.LoadFromFile("input1.pdf") page = pdf.Pages[0] # 要添加的水印文字 text = "请勿外传此文档" # 将 "Confidential" 翻译为中文“机密” # 创建字体(微软雅黑,40号,加粗,嵌入字体) font = PdfTrueTypeFont("微软雅黑", 40.0, PdfFontStyle.Bold, True) # 创建画刷(深蓝色) brush = PdfSolidBrush(PdfRGBColor(Color.get_DarkBlue())) # 测量文字尺寸以计算居中位置 size = font.MeasureString(text) x = (page.Canvas.ClientSize.Width - size.Width) / 2 y = (page.Canvas.ClientSize.Height - size.Height) / 2 # 保存当前画布状态 state = page.Canvas.Save() # 设置透明度为 0.3(30% 不透明) page.Canvas.SetTransparency(0.3) # 将原点移动到文字中心 page.Canvas.TranslateTransform(x + size.Width / 2, y + size.Height / 2) # 旋转画布 -45 度(逆时针) page.Canvas.RotateTransform(-45.0) # 在旋转后的画布中心绘制文字,使其居中显示 page.Canvas.DrawString(text, font, brush, PointF(-size.Width / 2, -size.Height / 2)) # 恢复画布状态 page.Canvas.Restore(state) # 保存包含水印的新 PDF 文件 pdf.SaveToFile("output/with_watermark.pdf") pdf.Close()
常用于生成自动水印文字,如 “CONFIDENTIAL”、“COPY” 等,可灵活用于批量处理。
生成的 PDF 文件:
文件正在被其他程序占用,保存时可能遇到 PermissionError。
在不同平台或字体环境下添加文本时,可能会遇到如下问题。以下是一些常见问题及解决建议:
问题 | 可能原因 | 解决方案 |
---|---|---|
文本位置偏差 | 坐标设置未考虑页面尺寸 | 使用 ClientSize 或 MeasureString() 实现动态适配 |
字体无法显示 | 缺少对应字体或不支持字符集 | 嵌入常用字体如 Arial Unicode,或使用 Noto Sans 等 Unicode 字体 |
Unicode 字符乱码 | 字体不支持全字符集 | 使用支持广泛字符集的字体并嵌入 |
内容重叠 | 行距或位置设置不当 | 使用 MeasureString() 计算文本高度,合理设置 Y 坐标 |
出现水印文字 | 使用试用版未授权 | 使用免费版本,或申请临时授权 |
文件体积变大 | 嵌入字体增加文件大小 | 如不需跨设备显示一致性,可使用不嵌入字体的 PdfFont |
macOS/Linux 显示异常 | 系统字体差异或度量方式不同 | 携带字体文件,或使用跨平台字体以确保一致性 |
|
通过 Spire.PDF for Python,你可以灵活地实现 PDF 文档的文字添加,无论是新建文档、修改现有文件,还是批量处理。该库提供丰富的样式与位置控制选项,适用于自动化报告、水印标注、模板填充等多种场景。
使用如 Spire.PDF 等库,通过 DrawString() 方法添加文字,并可设置字体、颜色和位置等属性。
当然可以。加载 PDF 后通过页面对象调用 DrawString() 添加内容即可。
逐行读取 TXT 文件内容,结合 DrawString() 方法按需写入 PDF 页面。
可以。遍历文件目录,对每个 PDF 分别加载并插入指定文字即可完成批量处理。
————————————————————————————————————————
关于慧都科技:
慧都科技是一家行业数字化解决方案公司,长期专注于软件、油气与制造行业。公司基于深入的业务理解与管理洞察,以系统化的业务建模驱动技术落地,帮助企业实现智能化运营与长期竞争优势。在软件工程领域,我们提供开发控件、研发管理、代码开发、部署运维等软件开发全链路所需的产品,提供正版授权采购、技术选型、个性化维保等服务,帮助客户实现技术合规、降本增效与风险可控。慧都科技E-iceblue的官方授权代理商,提供E-iceblue系列产品免费试用,咨询,正版销售等于一体的专业化服务。E-iceblue旗下Spire系列产品是国产文档处理领域的优秀产品,支持国产化信创,帮助企业高效构建文档处理的应用程序。
欢迎下载|体验更多E-iceblue产品
获取更多信息请咨询慧都在线客服 ;技术交流Q群(125237868)
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
文章转载自:慧都网PDF 是数字文档管理的普遍格式,但其固定布局特性限制了在需要灵活编辑、更新或现代工作流集成场景下的应用。相比之下,Markdown(.md)语法轻量、易读,非常适合网页发布、文档编写和版本控制。本文将介绍如何使用 Spire.PDF for Python 库,在 Python 中高效实现 PDF 到 Markdown 的单文件转换与批量转换。
在这个人工智能时代,Markdown因其易用性而备受重视。本指南将介绍如何借助Aspose.HTML,以 Python 编程方式将HTML转换为 Markdown。
有时需要离线访问网页,使其更易于访问,将HTML页面转换为PDF即可满足需求。在本篇教程中,我们演示如何借助Aspose.HTML将以编程方式使用 Python 将网页转换为 PDF。
本文档包含了有关安装和使用DevExpress WinForms v25.1版本控件的开发配置要求信息。
Spire.PDF for .NET是独立的PDF控件,用于.NET程序中创建、编辑和操作PDF文档
Spire.PDF for PythonSpire.PDF for Python是一个专业的 PDF 开发组件
Spire.PDF for Java独立专业的Java PDF组件,覆盖PDF文档生成、处理、转换等功能。
Spire.Office for .NET专业的.NET Office套件,涵盖office文档创建、编辑、转换、管理和OCR内容识别等操作
Spire.Office for PythonSpire.Office for Python 是用于办公文档处理的专业 Python API
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号