python docx 中文字体设置的操作方法
最近用到了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实现生成Word、docx文件的方法分析
本文实例讲述了python实现生成Word.docx文件的方法.分享给大家供大家参考,具体如下: http://python-docx.readthedocs.io/en/latest/index.html 生成word的利器! 一.快速开始 from docx import Document document = Document() 1.段落 加一个段落,下面paragraph 是前面内容的光标指向,后面再该处插入一句话. paragraph = document.add_paragraph
-
python批量提取word内信息
单位收集了很多word格式的调查表,领导需要收集表单里的信息,我就把所有调查表放一个文件里,写了个python小程序把所需的信息打印出来 #coding:utf-8 import os import win32com from win32com.client import Dispatch, constants from docx import Document def parse_doc(f): """读取doc,返回姓名和行业 """ doc
-
Python读取Word(.docx)正文信息的方法
本文介绍用Python简单读取*.docx文件信息,一些python-word库就是对这种方法的扩展. 介绍分两部分: Word(*.docx)文件简述 Python提取Word信息 Word(*.docx)文件简述 大约在2008年以前,Office产品中Word用.doc文件格式,这种二进制格式很难与其他软件兼容. 为了跟上时代,微软采用类XML格式标准定义其新版Word文件.docx. .docx实际上是一个zip的压缩文件,比如我们有一个test.docx的文件: 其内容如下: 改变其后
-
Python读写docx文件的方法
Python读写word文档有现成的库可以处理.我这里采用 python-docx.可以用pip install python-docx安装一下. 这里说一句,ppt和excel也有类似的库哦,而且是直接读取文件里面的xml数据.所以doc格式得另找其他库处理,doc格式不是基于xml的. 帮助文档:http://python-docx.readthedocs.org/en/latest/ 1.新建或打开文件.这个比较简单用docx的Document类,若指定路径则是打开文档:若没有指定路径则是
-
python-docx修改已存在的Word文档的表格的字体格式方法
搞了好几天的表格字体格式,一直想找一种能直接一次性修改表格所有字体格式的方法(函数),但是无论用什么方法都无法修改表格字体的格式,原因应该是已存在的文档本身就具有某种格式限制,制约着里面表格里面字体格式的更改,直接用类似:table.style.font.name='Arial',table.style.font.size = 120000-.之类的函数是不能更改表格的字体格式的(PS:可能该功能在开发中,也可能我没找到对应直接修改整个表格里面字体的方法) 但是后来发现表格里面用run = ad
-
利用python程序生成word和PDF文档的方法
一.程序导出word文档的方法 将web/html内容导出为world文档,再java中有很多解决方案,比如使用Jacob.Apache POI.Java2Word.iText等各种方式,以及使用freemarker这样的模板引擎这样的方式.php中也有一些相应的方法,但在python中将web/html内容生成world文档的方法是很少的.其中最不好解决的就是如何将使用js代码异步获取填充的数据,图片导出到word文档中. 1. unoconv 功能: 1.支持将本地html文档转换为docx
-
Python使用python-docx读写word文档
python-docx库可用于创建和编辑Microsoft Word(.docx)文件. 官方文档:链接地址 备注: doc是微软的专有的文件格式,docx是Microsoft Office2007之后版本使用,其基于Office Open XML标准的压缩文件格式,比 doc文件所占用空间更小.docx格式的文件本质上是一个ZIP文件,所以其实也可以把.docx文件直接改成.zip,解压后,里面的 word/document.xml包含了Word文档的大部分内容,图片文件则保存在word/me
-
Python读取word文本操作详解
本文研究的主要问题时Python读取word文本操作,分享了相关概念和实现代码,具体如下. 一,docx模块 Python可以利用python-docx模块处理word文档,处理方式是面向对象的.也就是说python-docx模块会把word文档,文档中的段落.文本.字体等都看做对象,对对象进行处理就是对word文档的内容处理. 二,相关概念 如果需要读取word文档中的文字(一般来说,程序也只需要认识word文档中的文字信息),需要先了解python-docx模块的几个概念. 1,Docume
-
Python操作word常见方法示例【win32com与docx模块】
本文实例讲述了Python操作word常见方法.分享给大家供大家参考,具体如下: 这里介绍两种方式: 使用win32com 使用docx 1. 使用win32com扩展包 只对windows平台有效 代码: # coding=utf-8 import win32com from win32com.client import Dispatch, DispatchEx word = Dispatch('Word.Application') # 打开word应用程序 # word = Dispatch
-
python读取word文档的方法
本文实例讲述了python读取word文档的方法.分享给大家供大家参考.具体如下: 首先下载安装win32com from win32com import client as wc word = wc.Dispatch('Word.Application') doc = word.Documents.Open('c:/test') doc.SaveAs('c:/test.text', 2) doc.Close() word.Quit() 这种方式产生的text文档,不能用python用普通的r方
-
Python实现批量读取word中表格信息的方法
本文实例讲述了Python实现批量读取word中表格信息的方法.分享给大家供大家参考.具体如下: 单位收集了很多word格式的调查表,领导需要收集表单里的信息,我就把所有调查表放一个文件里,写了个python小程序把所需的信息打印出来 #coding:utf-8 import os import win32com from win32com.client import Dispatch, constants from docx import Document def parse_doc(f):
-
python实现在windows下操作word的方法
本文实例讲述了python实现在windows下操作word的方法.分享给大家供大家参考.具体实现方法如下: import win32com from win32com.client import Dispatch, constants w = win32com.client.Dispatch('Word.Application') # 或者使用下面的方法,使用启动独立的进程: # w = win32com.client.DispatchEx('Word.Application') # 后台运行
随机推荐
- Access创建一个简单MIS管理系统
- Python中函数参数设置及使用的学习笔记
- jsp实现仿QQ空间新建多个相册名称并向相册中添加照片功能
- JavaScript创建对象的七种方式(推荐)
- jquery对所有input type=text的控件赋值实现方法
- jQuery检测鼠标左键和右键点击的方法
- 详解Bootstrap插件
- js string 转 int 注意的问题小结
- 详解Spring中实现接口动态的解决方法
- Linux中dd命令使用实例教程
- 使用反向ssh从外网访问内网主机的方法详解
- C语言函数的递归和调用实例分析
- js让一行页脚保持在底部
- MPLS 基础MPLS-VPN 标签分析
- 代码讲解C++继承和派生
- TP5(thinkPHP框架)实现后台清除缓存功能示例
- SQL Server 文件操作方法
- vue-cli 打包使用history模式的后端配置实例
- iOS使用UIKeyInput自定义密码输入框的方法示例
- php使用fullcalendar日历插件详解