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


Posted in Python onMay 08, 2018

最近用到了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 相关文章推荐
Python脚本实现Web漏洞扫描工具
Oct 25 Python
基于Python中单例模式的几种实现方式及优化详解
Jan 09 Python
python构建深度神经网络(DNN)
Mar 10 Python
基于numpy.random.randn()与rand()的区别详解
Apr 17 Python
python用户评论标签匹配的解决方法
May 31 Python
Laravel+Dingo/Api 自定义响应的实现
Feb 17 Python
Django如何开发简单的查询接口详解
May 17 Python
python绘制地震散点图
Jun 18 Python
face++与python实现人脸识别签到(考勤)功能
Aug 28 Python
关于sys.stdout和print的区别详解
Dec 05 Python
Python综合应用名片管理系统案例详解
Jan 03 Python
Python如何通过Flask-Mail发送电子邮件
Jan 29 Python
Python解析并读取PDF文件内容的方法
May 08 #Python
python-docx修改已存在的Word文档的表格的字体格式方法
May 08 #Python
对Python中gensim库word2vec的使用详解
May 08 #Python
用python处理MS Word的实例讲解
May 08 #Python
基于python批量处理dat文件及科学计算方法详解
May 08 #Python
使用Python通过win32 COM实现Word文档的写入与保存方法
May 08 #Python
Ubuntu下使用python读取doc和docx文档的内容方法
May 08 #Python
You might like
解密ThinkPHP3.1.2版本之模块和操作映射
2014/06/19 PHP
PHP解析RSS的方法
2015/03/05 PHP
一个简单至极的PHP缓存类代码
2015/10/23 PHP
详解Laravel视图间共享数据与视图Composer
2016/08/04 PHP
PHP入门教程之上传文件实例详解
2016/09/11 PHP
又一个图片自动缩小的JS代码
2007/03/10 Javascript
javascript 事件处理示例分享
2014/12/31 Javascript
jquery实现多屏多图焦点图切换特效的方法
2015/05/04 Javascript
jQuery实用技巧必备(下)
2015/11/03 Javascript
浅谈JS函数定义方式的区别
2016/10/30 Javascript
Javascript实现一个简单的输入关键字添加标签效果实例
2017/06/01 Javascript
Webpack性能优化 DLL 用法详解
2017/08/10 Javascript
Gulp实现静态网页模块化的方法详解
2018/01/09 Javascript
Fundebug支持监控微信小程序HTTP请求错误的方法
2019/02/21 Javascript
javascript中call()、apply()的区别
2019/03/21 Javascript
vue router 通过路由来实现切换头部标题功能
2019/04/24 Javascript
JS开发常用工具函数(小结)
2019/07/04 Javascript
Vue 组件复用多次自定义参数操作
2020/07/27 Javascript
python基础教程之Hello World!
2014/08/29 Python
python urllib爬取百度云连接的实例代码
2017/06/19 Python
Python实现的人工神经网络算法示例【基于反向传播算法】
2017/11/11 Python
pycharm 实现显示project 选项卡的方法
2019/01/17 Python
Python实现微信自动好友验证,自动回复,发送群聊链接方法
2019/02/21 Python
深入了解Python 变量作用域
2020/07/24 Python
python线程优先级队列知识点总结
2021/02/28 Python
html5 localStorage本地存储_动力节点Java学院整理
2017/07/06 HTML / CSS
Currentbody法国:健康与美容高科技产品
2020/08/16 全球购物
凌阳科技股份有限公司C++程序员面试题笔试题
2014/11/20 面试题
银行求职信个人范文
2013/12/16 职场文书
xxx同志考察材料
2014/02/07 职场文书
和谐家庭演讲稿
2014/05/24 职场文书
法人代表授权委托书范文
2014/09/10 职场文书
鸦片战争观后感
2015/06/09 职场文书
Nginx如何配置Http、Https、WS、WSS的方法步骤
2021/05/11 Servers
阿里云 Windows server 2019 配置FTP
2022/04/28 Servers
Win11 21h2可以升级22h2吗?看看你的电脑符不符合要求
2022/07/07 数码科技