python 字体_python docx字体设置

首先引入依赖包

from docx import Document

from docx.oxml.ns import qn

from docx.shared import Pt,RGBColor

如果不进行字体手动设置的话,生成的文字字体格式就会千奇百怪,如下图

Doc = Document()

Doc.add_heading("刚来csdn,这就是博客么,I了")

Doc.add_paragraph("Python ")

Doc.add_paragraph("Python 对word进行操作")

Doc.save("Python_word.docx")

可以看到自动配置的字体不是我们平常默认的宋体,而是一个歪果字体,无论是正文还是标题的字看着很乱。因此需要手动设置一下字体。

只需要在Doc = Document()下添加如下代码,就可以设置文本内容字体,颜色等等,方法是对font成员进行属性的修改。

Doc.styles['Normal'].font.name = u'宋体'

Doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')

Doc.styles['Normal'].font.size = Pt(10.5)

Doc.styles['Normal'].font.color.rgb = RGBColor(0,0,0)

可以看到正文内容的字体已经变成了我们想要的样子了,但蓝圈的标题依然还是有问题,可能因为标题不属于正文范围内吧,需要单独再设置一下。

对于标题来说,需要用这种方式设置字体

# 标题等级如1,2,3这些数字,一级标题二级标题这样

Head = Doc.add_heading("",level=标题等级)# 这里不填标题内容

run = Head.add_run("真正要填写的标题")

run.font.name=u'Cambria'

run._element.rPr.rFonts.set(qn('w:eastAsia'), u'Cambria')

run.font.color.rgb = RGBColor(0,0,0)

第一行的地方不填标题内容,因为我没有研究出来怎么修改他的大小和值,只能通过add_run的返回值来修改标题的内容。再运行的结果如下:

注意到颜色也发生了变化,是因为我最后一行修改了字体的颜色。

完整代码

Doc = Document()

Doc.styles['Normal'].font.name = u'宋体'

Doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')

Doc.styles['Normal'].font.size = Pt(10.5)

Doc.styles['Normal'].font.color.rgb = RGBColor(0,0,0)

Head = Doc.add_heading("",level=1)# 这里不填标题内容

run = Head.add_run("刚来csdn,这就是博客么,I了")

run.font.name=u'Cambria'

run.font.color.rgb = RGBColor(0,0,0)

run._element.rPr.rFonts.set(qn('w:eastAsia'), u'Cambria')

Doc.add_paragraph("Python ")

Doc.add_paragraph("Python 对word进行操作")

Doc.save("Python_word.docx")

附:字体大小参照这篇博客的对照表:

字号‘八号’对应磅值5

字号‘七号’对应磅值5.5

字号‘小六’对应磅值6.5

字号‘六号’对应磅值7.5

字号‘小五’对应磅值9

字号‘五号’对应磅值10.5

字号‘小四’对应磅值12

字号‘四号’对应磅值14

字号‘小三’对应磅值15

字号‘三号’对应磅值16

字号‘小二’对应磅值18

字号‘二号’对应磅值22

字号‘小一’对应磅值24

字号‘一号’对应磅值26

字号‘小初’对应磅值36

字号‘初号’对应磅值42

原文链接:https://blog.csdn.net/weixin_42763696/article/details/105492135

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/335151.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

gwt格式_GWT的渐进式Web应用程序配方

gwt格式渐进或不渐进… 如果您已经设计或开发Web应用程序已有一段时间,那么您可能会遇到无数次“渐进式Web应用程序”一词,并且可能会在未来几年内使用。 您可能想知道PWA的确切定义是什么,如何识别PWA,以及如何构建PWA。 根据字典…

光学定位与追踪技术_如何为射线光学仿真创建复杂的透镜几何结构

“射线光学模块”扩展了 COMSOL Multiphysics 软件的建模功能,允许用户引入射线追踪仿真。有了该模块,在集成软件环境中对复杂光学系统的热性能、结构及其他方面进行高阶研究不再是一个难题。创建几何模型是仿真成功的第一步。本文以 Petzval 透镜为例,探…

琥珀ai_琥珀项目:Java的未来暴露

琥珀ai如果一切按计划进行(我们正在研究Jigsaw项目),那么Java 9将在不到100天的时间内启动。 您可以在此处加入倒计时以发布它。 它将包含一长串新功能和升级功能,其中一些我们迫不及待想要看到实际应用。 但是,有些功…

MySQL的存储过程和函数简单写法

什么是存储过程 简单的说,就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法; ps:存储过程跟触发器有点类似,都是一组SQL集,但是存储过程是主动调用的&#…

python对excel求和_Python 两个Excel文件对应位置求和并存储

最近~老板给我的工作一直都有对大量的Excel的操作比如两Excel对应位置求和,并存储。(两Excel表格的第一列和第一行是一毛一样的,不需要求和,原样保存!)本着能躺着就不坐着的原则,只想快点躺着,果断放弃了手…

zdal配置文件_Autofac的基本使用---4、使用Config配置

准备使用的表是Student,创建相关的IDAL、DAL、IBLL、BLL层。使用EF,创建一个Model层,存放edmx文件。创建一个Infrastructure层,基础设施项目,使用泛型类型。普通类型的使用1.APP.Config 配置信息此处有个需要注意的地方…

判断选择语句switch...case

switch(被检测量){ case 常量1: 语句1; break; case 常量2: 语句2; break; ... deault: 语句N; break; }被检测量的数据类型 基本数据类型:byte、short、int、char引用数据类型:String、enum 穿透 int num 2; switch(num){ case 1: System.out.print…

Java与Python:哪一个最适合您? [信息图]

通过从您的应用程序学习企业APM产品,发现更快,更有效的性能监控。 参加AppDynamics APM导览! 在软件开发中,很少有问题比选择编程语言更具分裂性或部落性。 软件开发人员经常以自己选择的工具来强烈地认同自己,将客观…

怎么把php查询到的值显示到下拉框中_RazorSQL for Mac(数据库工具查询)8.5.3

razorsql mac版更新日志变化 查询结果:如果有多个查询结果选项卡,则从查询结果选项卡中选择比较查询结果选项将填充比较工具中的两个查询 漏洞修补 不需要重新启动razorsql才能生效的首选项需要重新启动 自动更新程序不适用于Windows计算机 缺少HBase连接…

docker删除es数据_木杉入门Elasticsearch(4):安装ES

木杉入门本系列的目标是在本地搭建一个Elasticsearch的服务集群,通过在阿里云服务器搭建FRP通道对外提供服务,为小规模应用提供一种高性价比的解决思路。系列内容:木杉入门Elasticsearch(1):ESXI虚拟机安装CentOS木杉入门Elastics…

MySQL数据库常用命令_常用SQL语句及命令_MySQL常用语句

文章目录一、常用的 SQL 语句(一)查看当前登录用户(二)查看当前数据库(三)如何查看全部用户?(四)创建数据库(五)选择要操作的数据库(六…

spock_在扩展Spock时输出给定值

spockSpock是一个Java测试框架,由GradleWare的软件工程师Peter Niederwieser于2008年创建,它可以促进BDD的发展。 利用这个 例如 ,一个故事可以定义为: Story: Returns go to stockAs a store owner In order to keep track of …

将serversocket 写在按钮事件中连接不上_Java服务器的模型—TCP连接/流量优化

本文很长哦,但请给我一点时间。通常,我们的应用程序不需要并行处理成千上万的用户,也不需要在一秒钟内处理成千上万的消息。我们只需要应付数十或数百个并发连接的用户,就可以在内部应用程序或某些微服务应用程序中承受如此大的负…

ios 开发设置左滑退出_苹果铃声怎么设置自己的歌?教你用手机快速搞定!

苹果手机铃声怎么设置为自己喜欢的歌曲?由于iOS系统的封闭性,想要给苹果手机更换铃声不像在安卓手机一样那么方便,看到网上很多教程也是需要使用电脑才能完成铃声的设置,有没有不复杂的方法来直接帮我们更换手机铃声?别…

dp括号匹配 网易面试题_面试题:大括号验证

dp括号匹配 网易面试题这是较容易的编码任务之一,但是您仍然可以在一些初步的技术筛选中达到目标。 问题看起来像这样: 给定仅包含字符( , ) , { , } , [和]的字符串,请确定输入字符串是否有效…

MySQL如何删除有外键约束的数据

在数据库中查看外键是否有效,值为1表示外键有效 mysql> select foreign_key_checks; ---------------------- | foreign_key_checks | ---------------------- | 1 | ---------------------- 1 row in set (0.00 sec)将外键的值设置为0,此时…

python绘制动画示例_Python使用matplotlib绘制动画的方法

本文实例讲述了Python使用matplotlib绘制动画的方法。分享给大家供大家参考。具体分析如下:matplotlib从1.1.0版本以后就开始支持绘制动画下面是几个的示例:第一个例子使用generator,每隔两秒,就运行函数data_gen:# -*…

基于单片机步进电机ppt答辩_基于MCU和DSP的步进电机控制技术分析

来源 | 控制与传动步进电机已经渗透入我们生活的方方面面,本文介绍了一些重要的步进电机相关技术,为开发人员基本了解步进电机的工作原理提供了足够的信息,同时也介绍了用微控制器或数字信号处理器控制步进电机的方法。步进电机也叫步进器&am…

拼图登陆拼图二维码验证_另一个拼图观点

拼图登陆拼图二维码验证在过去的几周中,围绕Java 9即将发布及其最著名的功能:Java平台模块系统JPMS进行了激烈的辩论。 –以其项目名称Jigsaw更为人所知。 模块系统以正式规范过程的形式引入Java生态系统 – JSR –需要由专家组以最终形式批准。 在该专…

【C++】多线程(四)

这是多线程的最后一篇文章。 std::promise promise 的作用很简单,在一个线程t1中保存一个类型typename T的值,可供相绑定的std::future对象在另一线程t2中获取。事实上,它与future基本是成对出现的。来看下面的例子: //声明一个…