python docx 中文字体设置
2017-08-07 13:55
92 查看
最近用到了docx生成word文档,docx本身用起来很方便,自带的各种样式都很好看,美中不足的就是对中文的支持不够好。在未设置中文字体的时候,生成的文档虽然可以显示中文,但是笔画大小不一,很难看。
解决办法:
首先创建一个文档,要先声明一个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()方法。
综合起来这样
问题解决, 表格中字体成功更改为”宋体”.
解决办法:
首先创建一个文档,要先声明一个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 docx 中文字体设置
- python matplotlib 中文字体设置
- iText 中写Word RTF 文档 中文字体设置
- Netbeans8.0设置Consola字体并解决中文乱码问题
- ios 9.2以上自定义中文字体掉进的坑(三种方法设置字体)
- Android TextView中文字通过SpannableString来设置超链接、颜色、字体等属性
- 在python image 中安装中文字体
- Source Insight中文字体设置
- Android TextView中文字设置超链接、颜色、字体
- css设置各种中文字体如雅黑、黑体、宋体、楷体等等
- python matplotlib 中文显示参数设置
- latex学习笔记1 latex中文、英文、数学字体设置
- Android TextView中文字通过SpannableString来设置超链接、颜色、字体等属性
- Eclipse解决中文字体设置
- Silverlight技术之设置中文字体
- Struts2的国际化文件配置样式以及中文字体设置
- Python中输出字体的颜色设置
- 移动开发----Android TextView中文字通过SpannableString来设置超链接、颜色、字体等属性
- Android TextView中文字通过SpannableString来设置超链接、颜色、字体等属性