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

作者:Leeoo_lyq 时间:2022-07-19 10:07:25 

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中的

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

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


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")

效果展示

Python-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")

效果展示

Python-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")

效果展示

Python-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 实现整体修改或者部分修改文字的大小和字体类型

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

来源:https://blog.csdn.net/Leeoo_lyq/article/details/102625425

标签:Python,docx,文字,大小,类型
0
投稿

猜你喜欢

  • Ubuntu12下编译安装PHP5.3开发环境

    2023-11-15 14:36:29
  • 完美解决Python2操作中文名文件乱码的问题

    2022-12-12 11:29:46
  • Python做屏幕录制工具的实现示例

    2021-06-17 09:29:23
  • python mysql断开重连的实现方法

    2024-01-24 01:20:26
  • Python实现敏感词过滤的4种方法

    2021-10-01 06:21:08
  • 浅析matlab中imadjust函数

    2022-03-14 19:44:22
  • Python如何设置指定窗口为前台活动窗口

    2022-01-22 02:20:02
  • python实现K近邻回归,采用等权重和不等权重的方法

    2021-12-21 19:29:26
  • go第三方库sqlx操作MySQL及ORM原理

    2024-01-18 21:12:32
  • Httprunner简介、安装及基本使用教程

    2022-07-13 01:52:52
  • php结合js实现点击超链接执行删除确认操作

    2023-11-15 03:30:51
  • Python爬虫之爬取哔哩哔哩热门视频排行榜

    2021-08-19 04:33:14
  • python爬虫使用正则爬取网站的实现

    2021-09-10 10:39:11
  • 根据表名和索引获取需要的列名的存储过程

    2011-09-30 11:54:42
  • Linux Centos 下使用yum 命令安装mysql实现步骤

    2024-01-28 02:24:42
  • 一个完整的PHP类包含的七种语法说明

    2023-11-16 13:02:07
  • Python基于FTP模块实现ftp文件上传操作示例

    2024-01-02 00:04:38
  • Python创建简单的神经网络实例讲解

    2021-12-02 05:38:41
  • php实现网站留言板功能

    2023-11-23 21:06:36
  • python 与GO中操作slice,list的方式实例代码

    2022-08-15 08:48:06
  • asp之家 网络编程 m.aspxhome.com