首页 > 脚本专栏 > python > Python docx修改文字大小字体类型

Python-docx 实现整体修改或者部分修改文字的大小和字体类型

作者:Leeoo_lyq

这篇文章主要介绍了Python-docx 实现整体修改或者部分修改文字的大小和字体类型,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

Python中可以用docx来生成word文档,docx中可以自定义文字的大小和字体等。

其中要整体修改文字的字体大小和字体,可以用以下方法:

newfile = docx.Document() newfile.styles['Normal'].font.name = 'Times New Roman' newfile.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')

设置字体的两句一定要一起用才能起作用,其中

newfile.styles['Normal'].font.name = 'Times New Roman' 是用来设置当文字是西文时的字体,

newfile.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体') 是用来设置当文字是中文时的字体。

有点类似Word中的

当只要设置一部分文字的字体,即不要整个文档的字体都一样时,可以用以下方法:

import docx from docx.oxml.ns import qn from docx.shared import Pt newfile = docx.Document() p1 = newfile.add_paragraph() text1 = p1.add_run("第一段文字是中文;The first paragraph is in English") p2 = newfile.add_paragraph() text2 = p2.add_run("第二段文字是中文;The second paragraph is in English") # 分别控制每个段落的字体 text1.font.size = Pt(15) # 字体大小 text1.bold = True # 字体是否加粗 text1.font.name = 'Times New Roman' # 控制是西文时的字体 text1.element.rPr.rFonts.set(qn('w:eastAsia'), '宋体') # 控制是中文时的字体 text2.font.size = Pt(10) text2.bold = False # 字体是否加粗 text2.font.name = 'Times New Roman' text2.element.rPr.rFonts.set(qn('w:eastAsia'), '黑体') newfile.save("newdocx.docx")

上面代码是向文档写入了两段文字,第一段中的中文是“宋体”的,而第二段中的中文是“黑体”的。

补充:python 使用 python-docx 调整 Word 文档样式

修改文字字体样式

from docx import Document from docx.shared import Pt #设置像素、缩进等 from docx.shared import RGBColor #设置字体颜色 from docx.oxml.ns import qn doc = Document(r"../wordDemo/表彰大会通知.docx") for paragraph in doc.paragraphs: for run in paragraph.runs: run.font.bold = True run.font.italic = True run.font.underline = True run.font.strike = True run.font.shadow = True run.font.size = Pt(18) run.font.color.rgb = RGBColor(255,0,255) run.font.name = "黑体" # 设置像黑体这样的中文字体,必须添加下面 2 行代码 r = run._element.rPr.rFonts r.set(qn("w:eastAsia"),"黑体") doc.save(r"../wordDemo/表彰大会通知.docx")

修改段落样式

from docx import Document from docx.enum.text import WD_ALIGN_PARAGRAPH #设置对象居中、对齐等。 doc = Document(r"../wordDemo/表彰大会通知.docx") print(doc.paragraphs[1].text) doc.paragraphs[1].alignment = WD_ALIGN_PARAGRAPH.CENTER # 这里设置的是居中对齐 doc.save(r"../wordDemo/表彰大会通知.docx")

行间距调整

from docx import Document from docx.enum.text import WD_ALIGN_PARAGRAPH doc = Document(r"../wordDemo/表彰大会通知.docx") for paragraph in doc.paragraphs: paragraph.paragraph_format.line_spacing = 5.0 doc.save(r"../wordDemo/表彰大会通知.docx")

段前与段后间距

from docx import Document from docx.enum.text import WD_ALIGN_PARAGRAPH from docx.shared import Pt doc = Document(r"../wordDemo/test.docx") for paragraph in doc.paragraphs: paragraph.paragraph_format.space_before = Pt(12) paragraph.paragraph_format.space_after = Pt(10) # Pt(12) 表示12磅 doc.save(r"../wordDemo/test.docx")

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

您可能感兴趣的文章:
  • Tensorflow自定义模型与训练超详细讲解
    Tensorflow自定义模型与训练超详细讲解
    2022-11-11
  • 使用Python 文件读取的多种方式(四种方式)
    使用Python 文件读取的多种方式(四种方式)
    2022-11-11
  • 基于Python实现贪吃蛇小游戏(附源码)
    基于Python实现贪吃蛇小游戏(附源码)
    2022-11-11
  • Python中random.shuffle()函数用法代码案例
    Python中random.shuffle()函数用法代码案例
    2022-11-11
  • 如何计算 tensorflow 和 pytorch 模型的浮点运算数
    如何计算 tensorflow 和 pytor
    2022-11-11
  • 详解Python装饰器的四种定义形式
    详解Python装饰器的四种定义形式
    2022-11-11
  • Python中通过@classmethod 实现多态的示例
    Python中通过@classmethod 实现多态的示例
    2022-11-11
  • python-docx如何缩进两个字符
    python-docx如何缩进两个字符
    2022-11-11
  • 美国设下计谋,用娘炮文化重塑日本,已影响至中国
    美国设下计谋,用娘炮文化重塑日本,已影响至中国
    2021-11-19
  • 时空伴随者是什么意思?时空伴随者介绍
    时空伴随者是什么意思?时空伴随者介绍
    2021-11-09
  • 工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    工信部称网盘企业免费用户最低速率应满足基本下载需求,天翼云盘回应:坚决支持,始终
    2021-11-05
  • 2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2022年放假安排出炉:五一连休5天 2022年所有节日一览表
    2021-10-26
  • 电脑版 - 返回首页

    2006-2024 脚本之家 JB51.Net , All Rights Reserved.
    苏ICP备14036222号