You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 03:15:05