• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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")
    

    效果展示

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

    您可能感兴趣的文章:
    • 安装python-docx后,无法在pycharm中导入的解决方案
    • Python安装docx依赖包教程
    • 使用Python docx修改word关键词颜色的操作
    • Python中docx2txt库的使用说明
    • python docx的超链接网址和链接文本操作
    • 详解用 python-docx 创建浮动图片
    • python 实现docx与doc文件的互相转换
    上一篇:python基于watchdog库全自动化监控目录文件
    下一篇:利用Python3实现统计大量单词中各字母出现的次数和频率的方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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