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中针对函数处理的特殊方法
Mar 06 Python
Python3读取UTF-8文件及统计文件行数的方法
May 22 Python
python动态加载包的方法小结
Apr 18 Python
python函数的5种参数详解
Feb 24 Python
python使用两种发邮件的方式smtp和outlook示例
Jun 02 Python
Python基于正则表达式实现文件内容替换的方法
Aug 30 Python
python3 发送任意文件邮件的实例
Jan 23 Python
Mac PyCharm中的.gitignore 安装设置教程
Apr 16 Python
OpenCV+python实现实时目标检测功能
Jun 24 Python
如何使用python socket模块实现简单的文件下载
Sep 04 Python
利用Python实现学生信息管理系统的完整实例
Dec 30 Python
Python 一键获取电脑浏览器的账号密码
May 11 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
用 php 编写的日历
2006/10/09 PHP
PHP遍历数组的三种方法及效率对比分析
2015/02/12 PHP
php中smarty区域循环的方法
2015/06/11 PHP
全面解读PHP的Yii框架中的日志功能
2016/03/17 PHP
php实现文章置顶功能的方法
2016/10/20 PHP
Alliance vs AM BO3 第一场2.13
2021/03/10 DOTA
IE 缓存策略的BUG的解决方法
2007/07/21 Javascript
JS 各种网页尺寸判断实例方法
2013/04/18 Javascript
jquery属性过滤选择器使用示例
2013/06/18 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 图片库
2015/01/09 Javascript
JS传值出现中文参数乱码的解决方法
2016/06/30 Javascript
详解JS-- 浮点数运算处理
2016/11/28 Javascript
JavaScript定义全局对象的方法示例
2017/01/12 Javascript
jQuery表单插件ajaxForm实例详解
2017/01/17 Javascript
Vuex利用state保存新闻数据实例
2017/06/28 Javascript
jQuery.Sumoselect插件实现下拉复选框效果
2017/11/09 jQuery
vue2 前端搜索实现示例
2018/02/26 Javascript
Node.js readline 逐行读取、写入文件内容的示例
2018/03/01 Javascript
Python字典操作简明总结
2015/04/13 Python
Python中for循环控制语句用法实例
2015/06/02 Python
python编码最佳实践之总结
2016/02/14 Python
Python实现多线程抓取网页功能实例详解
2017/06/08 Python
Python3实现发送QQ邮件功能(html)
2017/12/15 Python
python字符串反转的四种方法详解
2019/12/02 Python
德国运动营养和健身网上商店:Myprotein.de
2018/07/18 全球购物
大学生就业自我鉴定
2013/10/26 职场文书
村居抓节水倡议书
2014/05/19 职场文书
实训报告范文大全
2014/11/04 职场文书
健康状况证明书
2014/11/26 职场文书
宣传稿格式范文
2015/07/23 职场文书
少先大队干部竞选稿
2015/11/20 职场文书
离婚协议书范文2016
2016/03/18 职场文书
2016年社区国庆节活动总结
2016/04/01 职场文书
python pyhs2 的安装操作
2021/04/07 Python
Vue实现动态查询规则生成组件
2021/05/27 Vue.js
SpringBoot集成Redis,并自定义对象序列化操作
2021/06/22 Java/Android