Discuz! BBS

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 12|回复: 0

python-docx 设置华文楷体 小四 加粗

[复制链接]

271

主题

393

帖子

2538

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2538
发表于 前天 10:06 | 显示全部楼层 |阅读模式
python-docx 设置字体
  1. from docx import Document
  2. from docx.enum.text import WD_PARAGRAPH_ALIGNMENT as ALIGN
  3. from docx.shared import Pt
  4. from docx.oxml.ns import qn
  5. from docx.oxml import OxmlElement

  6. doc = Document()
  7. # 文件头
  8. heading = doc.add_heading()
  9. heading.alignment = ALIGN.CENTER
  10. run0 = heading.add_run(tump[0]['s_path'][:-5])
  11. run0.font.name = '华文楷体'
  12. run0._element.rPr.rFonts.set(qn('w:eastAsia'), '华文楷体')  # 对于中文支持
  13. run0.font.size = Pt(12)
  14. run0.font.bold = True

  15. paragraph = doc.add_paragraph()
  16. run = paragraph.add_run(text)
  17. run.font.name = '华文楷体'
  18. # 检查rPr是否存在,如果不存在则创建
  19. if run._element.rPr is None:
  20.         run._element.rPr = OxmlElement('w:rPr')

  21. run._element.rPr.rFonts.set(qn('w:eastAsia'), '华文楷体')  # 对于中文支持
  22. run.font.size = Pt(12)
  23. # save当目标文件存在的时候,自动覆盖。
  24. doc.save(dest_)
复制代码



  1. from docx import Document
  2. from docx.shared import Pt
  3. from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
  4. from docx.oxml.ns import qn
  5. from docx.oxml import OxmlElement

  6. def set_custom_font(run, font_name, font_size, is_bold=False):
  7.     """设置字体和大小,支持自定义字体"""
  8.     run.font.name = font_name
  9.     run.font.size = Pt(font_size)
  10.     run.font.bold = is_bold

  11. def add_custom_font_to_doc(doc, font_name):
  12.     """向文档中添加自定义字体"""
  13.     font = OxmlElement('w:font')
  14.     font.set(qn('w:name'), font_name)
  15.     style = doc.styles['Normal']
  16.     style.font.set(qn('w:eastAsia'), font)

  17. def main():
  18.     # 创建一个文档对象
  19.     doc = Document()
  20.    
  21.     # 添加一个段落
  22.     paragraph = doc.add_paragraph()
  23.     paragraph.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER  # 居中对齐(可选)
  24.    
  25.     # 创建一个运行对象并设置其样式
  26.     run = paragraph.add_run('这里是要设置的文本')
  27.     set_custom_font(run, '华文楷体', 12, True)  # 12对应小四字号,True表示加粗
  28.    
  29.     # 如果Word中没有预装华文楷体,需要添加自定义字体支持(此步骤在某些情况下可能不需要)
  30.     # add_custom_font_to_doc(doc, '华文楷体')
  31.    
  32.     # 保存文档
  33.     doc.save('example.docx')

  34. if __name__ == '__main__':
  35.     main()
复制代码

自定义字体:如果你的Word模板中没有“华文楷体”,可能需要将该字体添加到Word中或者确保你的系统中已安装该字体。在Word中直接添加字体的方法通常是通过“字体设置”对话框。但在某些情况下,如使用python-docx直接生成文档时,你可能需要手动安装字体或者在系统中已有该字体。对于后者,上面的代码中的add_custom_font_to_doc函数可能不是必需的,因为python-docx通常能识别已安装的字体。但如果遇到字体显示问题,可以尝试使用此函数。

字号:在Word中,“小四”字号通常对应于12磅(Pt)。在python-docx中设置字号时,使用Pt(12)即可。

加粗:通过run.font.bold = True设置文本加粗。

通过上述方法,你可以在Word文档中设置特定样式的文本。如果遇到字体不显示的问题,请确保你的系统或Word模板支持该字体,或者尝试在Word中手动添加该字体。
将文字变色:
  1. from docx import Document
  2. from docx.shared import RGBColor

  3. # 加载文档
  4. doc = Document('path_to_your_document.docx')

  5. # 定义青色
  6. cyan_color = RGBColor(0, 255, 255)

  7. # 假设我们要修改第一个段落的颜色
  8. paragraph = doc.paragraphs[0]

  9. # 遍历段落的Run对象并设置颜色
  10. for run in paragraph.runs:
  11.     run.font.color.rgb = cyan_color

  12. # 保存文档
  13. doc.save('modified_document.docx')
复制代码



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|DiscuzX

GMT+8, 2025-4-29 08:46 , Processed in 0.013464 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表