python docx 中文字体设置的操作方法

yipeiwu_com6年前Python基础

最近用到了docx生成word文档,docx本身用起来很方便,自带的各种样式都很好看,美中不足的就是对中文的支持不够好。在未设置中文字体的时候,生成的文档虽然可以显示中文,但是笔画大小不一,很难看。

解决办法:

首先创建一个文档,要先声明一个document:

from docx import Document
document = Document()

docx内置的样式都可以通过document.styles取到。

正文是Normal, 标题样式根据标题声明的基本,分别从Heading 1 到Heading 9, 另外还有table、list等各种word对应的样式。可以通过遍历document.styles查看。

我们以正文Normal为例。先来看看涉及字体更改的是style object里面的哪些属性。

1. document.styles[‘Normal'].font.name

有兴趣深入研究的同学可以看看官方文档对Font的介绍

http://python-docx.readthedocs.io/en/latest/dev/analysis/features/text/font.html?highlight=font

在这里我们只需要更改font.name。

2. document.styles[‘Normal']._element.rPr.rFonts

只更改font.name是不够的,还需要调用._element.rPr.rFonts的set()方法。

综合起来这样

from docx.oxml.ns import qn
document.styles['Normal'].font.name = u'宋体'
document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')

问题解决, 表格中字体成功更改为”宋体”.

以上这篇python docx 中文字体设置的操作方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

django批量导入xml数据

django后台批量导入数据 在生产环境中,往往数据不是几条或者几百条,那么举个例子,将公司所有员工员工号或者帐号密码导入进后台,那就不建议你去后台一条条记录去添加了 如何从xml中批...

8段用于数据清洗Python代码(小结)

最近,大数据工程师Kin Lim Lee在Medium上发表了一篇文章,介绍了8个用于数据清洗的Python代码。 数据清洗,是进行数据分析和使用数据训练模型的必经之路,也是最耗费数据科...

Python2.7下安装Scrapy框架步骤教程

Python2.7下安装Scrapy框架步骤教程

由于毕业设计的要求,需要在网站上抓取大量的数据,那么使用Scrapy框架可以让这一过程变得简单不少,毕竟Scrapy是一个为了爬去网站数据、提取结构性数据而编写的应用框架。于是,便开始了...

Django后端发送小程序微信模板消息示例(服务通知)

Django后端发送小程序微信模板消息示例(服务通知)

模板消息 官方文档:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/template-mess...

python执行CMD指令,并获取返回的方法

如下所示: result = os.popen('ps aux') res = result.read() for line in res.splitlines():...