您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

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

51自学网 2021-10-30 22:53:05
  python
这篇教程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 docxfrom docx.oxml.ns import qnfrom 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 Documentfrom docx.shared import Pt #设置像素、缩进等from docx.shared import RGBColor #设置字体颜色from docx.oxml.ns import qndoc = 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 Documentfrom 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 Documentfrom docx.enum.text import WD_ALIGN_PARAGRAPHdoc = Document(r"../wordDemo/表彰大会通知.docx")for paragraph in doc.paragraphs:  paragraph.paragraph_format.line_spacing = 5.0doc.save(r"../wordDemo/表彰大会通知.docx")

效果展示

段前与段后间距

from docx import Documentfrom docx.enum.text import WD_ALIGN_PARAGRAPHfrom docx.shared import Ptdoc = 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")

效果展示

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


利用Python计算质数与完全数的方法实例
利用Python3实现统计大量单词中各字母出现的次数和频率的方法
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。