PyMuPDF能否添加粗体、斜体、下划线及删除线文本?
PyMuPDF支持添加富文本格式(粗体/斜体/下划线/删除线)的实现方法
PyMuPDF完全支持生成包含粗体、斜体、下划线及删除线的文本,甚至支持这几种格式的组合使用,具体实现思路和示例如下:
核心实现逻辑
PyMuPDF通过字体属性搭配文本装饰参数来实现富文本格式:
- 粗体/斜体:依赖对应样式的字体文件(如带Bold、Italic后缀的字体),创建字体对象时指定对应字体即可。
- 下划线/删除线:直接通过
insert_text()或TextWriter的参数开启,比如underline(下划线)、strikeout(删除线)。
代码示例
1. 基础格式单独实现
import fitz # 创建PDF文档 doc = fitz.open() page = doc.new_page() # 加载不同样式字体(需确保字体存在,可使用系统默认字体) normal_font = fitz.Font("helv") bold_font = fitz.Font("helvb") italic_font = fitz.Font("helvi") # 插入各类基础格式文本 page.insert_text((50, 100), "这是粗体文本", font=bold_font, fontsize=14) page.insert_text((50, 130), "这是斜体文本", font=italic_font, fontsize=14) page.insert_text((50, 160), "这是带下划线的文本", font=normal_font, fontsize=14, underline=True) page.insert_text((50, 190), "这是带删除线的文本", font=normal_font, fontsize=14, strikeout=True) # 保存文档 doc.save("basic_text_styles.pdf") doc.close()
2. 多种格式组合实现
import fitz doc = fitz.open() page = doc.new_page() # 加载粗斜体字体 bold_italic_font = fitz.Font("helvbi") # 插入多格式组合的文本 page.insert_text( (50, 100), "这是粗斜体+下划线+删除线的组合文本", font=bold_italic_font, fontsize=14, underline=True, strikeout=True ) doc.save("combined_text_styles.pdf") doc.close()
注意事项
- 若系统默认字体不满足需求,可指定自定义字体文件路径,比如
fitz.Font(filepath="/your/font/path/bold-font.ttf")。 - 批量排版复杂文本时,推荐使用
TextWriter类,其支持的格式参数与insert_text()一致,排版效率更高。
内容的提问来源于stack exchange,提问作者Style
相关产品推荐
相关产品推荐

