Python-docx 实现整体修改或者部分修改文字的大小和字体类型
作者:Leeoo_lyq 发布时间:2022-07-19 10:07:25
标签: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")
效果展示
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。
来源:https://blog.csdn.net/Leeoo_lyq/article/details/102625425
0
投稿
猜你喜欢
- 问题:在使用mask_rcnn预测自己的数据集时,会出现下面错误:ResourceExhaustedError: OOM when allo
- 问题你想定义跟actor模式中类似“actors”角色的任务解决方案actor模式是一种最古老的也是最简单的并行和分布式计算解决方案。 事实
- 项目中大量用到图片加载,由于图片太大,加载速度很慢,因此需要对文件进行统一压缩第一种 一:安装包python -m pip ins
- 一. adb 相关命令:1. 关闭adb服务:adb kill-server2. 启动adb服务 adb start
- 前言在本文中,我们将介绍10个示例,以掌握如何使用用于Python的Seaborn库创建图表。任何数据产品的第一步都应该是理解原始数据。对于
- selenium关闭窗口有两个方法,close与quit,我们稍作研究便知道这两个方法的区别。1.看源码或API这是close()的说明:C
- MySQL从5.1.4版开始带有一个压力测试工具mysqlslap,通过模拟多个并发客户端访问mysql来执行测试,使用起来非常的简单。通过
- 简介如何简单的使用python来实现将一部视频转换为字符画视频的效果。 其实,大家都知道视频就是一帧一帧的图片构成的。  
- 1.不要放过任何一个看上去很简单的小编程问题——他们往往并不那么简单,或者可以引伸出很多知识点;2.会用asp,并不说明你会asp;3.看a
- 以前面试的时候会被问到,linux熟不熟呀?对于这种问题:我总会尴尬地回答,“额..了解一点”。 然而,我大学毕业的时候,连linux的虚拟
- 集合内建函数和内建方法(1)标准类型函数 len():把集合作为参数
- 原文地址:30 Days of Mootools 1.2 Tutorials - Day 18 - Classes part IClass(
- 也就是 addEventListener 和 on 的区别为什么需要 addEventListener?先来看一个片段:<div id
- 子查询-嵌套查询子查询是指一个查询语句嵌套在另一个语句内部的查询原始查询方法SELECT last_name,salaryFROM empl
- 循环是所有编程语言中最为重要的机制之一,几乎任何拥有实际意义的计算机程序(排序、查询等)都里不开循环。 而循环也正是程序优化中非常让人头疼的
- vue中实现拖拽效果,供大家参考,具体内容如下首先要搞明白分清clientY pageY screenY layerY offsetY的区别
- 逻辑门是任何数字电路的基本构建块。它需要一两个输入并根据这些输入产生输出。输出可能为高 (1) 或低 (0)。逻辑门使用二极管或晶体管实现。
- 程序开始:<% Server.ScriptTimeout = &HE10 '&
- 今天给大家讲的是ASP给图片加水印的知识ASP给图片加水印是需要组件的…常用的有aspjpeg和中国人自己开发的wsImage…前者有30天
- 简述小编经常会遇到一些数据库编码不对得问题,好TM头疼,这里做一个记录,供大家参考。修改数据库字符集:ALTER DATABASE db_n