
Python-docx库修改Word文档字体问题及解决方案
在使用python-docx库处理Word文档时,常常会遇到字体设置失效的情况,尤其是在处理中文字体时。例如,直接使用font.name属性设置中文字体,往往不起作用。
以下代码片段演示了这个问题:
from docx import Document
from docx.shared import pt
document = Document()
paragraph = document.add_paragraph('这是一段中文文本。')
run = paragraph.runs[0]
run.font.size = pt(20)
run.font.name = '黑体' # 设置字体为黑体,但对中文无效
document.save('test.docx')运行后,文档中文字体可能并非“黑体”,而是默认字体。这是因为font.name主要影响西文字体。 要正确设置中文字体,需要修改文档样式,特别是默认样式“Normal”。
立即学习“Python免费学习笔记(深入)”;
有效的解决方案如下:
from docx import Document
from docx.oxml.ns import qn
document = Document()
document.styles['Normal'].font.name = u'黑体'
document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'黑体')
document.add_paragraph('这是一段中文文本,现在字体应该是黑体了。')
document.save('test.docx')这段代码通过修改“Normal”样式的字体属性,并使用_element.rPr.rFonts.set(qn('w:eastAsia'), u'黑体') 专门设置东亚语言(包括中文)的字体为“黑体”。 这样,所有使用默认样式的文本都会应用黑体字。 请注意u'黑体'的使用,确保正确处理Unicode字符。
通过这种方法,可以有效解决Python-docx库中中文字体设置失效的问题,确保文档中文字体显示正确。
以上就是Python-docx修改Word文档字体失效?如何正确设置中文字体?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号