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

作者:bsh_csn 时间:2021-01-12 22:33:44 

最近用到了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'宋体')

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

来源:https://blog.csdn.net/bsh_csn/article/details/76835316

标签:python,docx,中文,字体,设置
0
投稿

猜你喜欢

  • MySQL 删除数据库中重复数据方法小结

    2024-01-25 16:39:03
  • Dreamweaver快捷键大全

    2007-11-05 14:08:00
  • 排版自适应提升可访问性

    2009-04-08 12:47:00
  • Python实现语音合成功能详解

    2023-11-28 16:09:17
  • Python快速转换numpy数组中Nan和Inf的方法实例说明

    2021-11-12 06:24:03
  • Python实现一键改变raw格式照片风格

    2021-04-07 10:48:16
  • 解决Python requests库编码 socks5代理的问题

    2023-01-29 13:27:28
  • .Net行为型设计模式之迭代器模式(Iterator)

    2024-06-05 09:27:47
  • Dreamweaver定义本地站点

    2010-07-02 16:27:00
  • 如何绕过ODBC直接访问SQL Server?

    2010-05-18 18:13:00
  • JSP JavaBean的setProperty属性

    2023-07-10 19:58:11
  • 对有自增长字段的表导入数据注意事项

    2024-01-22 17:54:51
  • 关于Kotlin中SAM转换的那些事

    2022-02-09 15:14:38
  • Python 实现子类获取父类的类成员方法

    2022-01-14 00:28:17
  • python Matplotlib画图之调整字体大小的示例

    2023-03-27 09:43:30
  • python使用KNN算法手写体识别

    2022-06-28 05:30:56
  • 简述Python中的面向对象编程的概念

    2021-11-08 07:53:11
  • python如何建立全零数组

    2023-08-02 09:50:45
  • Linux下MySQL多实例部署及安装指南

    2024-01-21 10:49:28
  • 老生常谈CSS网页布局的意义与副作用

    2008-09-12 12:31:00
  • asp之家 网络编程 m.aspxhome.com