深圳网站高端建设,网站怎样维护,石家庄正规网站建设公司,网站建设总体说明书代码和实现效果
from docx import Document
from docx.oxml import OxmlElement
from docx.oxml.ns import qn
from docx.shared import Pt# 调整pt设置字间距
def SetParagraphCharSpaceByPt(run, pt1):通过修改word源码方式, 添加w:spacing标签直接通过调整pt来设置字符间距…代码和实现效果
from docx import Document
from docx.oxml import OxmlElement
from docx.oxml.ns import qn
from docx.shared import Pt# 调整pt设置字间距
def SetParagraphCharSpaceByPt(run, pt1):通过修改word源码方式, 添加w:spacing标签直接通过调整pt来设置字符间距# 获取或创建w:rPr元素rPr run._element.find(qn(w:rPr))if rPr is None:rPr OxmlElement(w:rPr)run._element.insert(0, rPr)# 创建w:spacing元素spaceChar OxmlElement(w:spacing)spaceChar.set(qn(w:val), str(pt * 20))# 添加w:spacing到w:rPrrPr.append(spaceChar)def AddParagraph(doc, text):p doc.add_paragraph()run p.add_run(text)return p, rundoc Document()
p, run AddParagraph(doc, text这是一个段落)
SetParagraphCharSpaceByPt(runrun, pt3)
doc.save(test.docx)原理和代码思路
通过解压的方式打开一个已经提前设置好字符间距的word文档在word/document.xml可以看到具体关于字符间距设置的XML标签代码
w:pw:rw:rPrw:rFonts w:ascii黑体 w:hAnsi黑体 w:eastAsia黑体/w:b w:val0/w:i w:val0/w:sz w:val32/w:spacing w:val150.0//w:rPrw:t这是一个段落/w:t/w:r
/w:pw:p表示word:paragraphw:r表示word:runw:t表示word:text定义段落的文本内容w:rPr表示word:runProperty而在w:rPr标签下的是各类属性标签其中w:spacing为字符间距这是需要coding为我们自定义的标签。而上述示例Python代码也在对这个标签进行创建并赋值w:spacing标签中的属性w:val代表字符间距大小其值等于pt(磅) * 20