python-docx如何缩进两个字符
作者:Bertramoon 发布时间:2022-07-04 15:56:45
事情是这样的,笔者在使用docx库的时候遇到了文字的缩进问题,具体需求是:
正文内容每段首行顶两格,也就是向右缩进两个字符,像这样:
需求看似很简单嘛,于是我就上网查,结果很多是说设置缩进为Cm(0.74),也有的说是直接用数字表示,总之都很花,感觉没讲到点子上(当然可能是我搜索有问题)。于是,我查看了一下字体大小的问题,总算拨云见日。
在平时使用办公软件的时候,我们习惯于使用Tab
键缩进,并且软件还有自动缩进的功能。但其实缩进两个字符到底是缩进多大,是需要看你的字体大小的,比如说五号字体缩进2个字符的话就是需要缩进2个五号字体的大小(听君一席话如听一席话),18磅的字体缩进2个字符则是缩进2个18磅字体的大小。在实际编程中,如果要考虑缩进问题的话,一定不能忽略字体大小。而说到字体大小,它有很多种单位,最常见的单位有以下几种:
中文(比如小初、五号)
磅(pt)
毫米/厘米(mm/cm)
像素(px)
英寸(inch)
举个例子,五号字体 = 10.5pt = 3.70mm = 14px = 0.146inch
首先,我们用代码输出一下10.5磅字体(五号)对应的各个单位的大小验证一下
from docx.shared import Pt
from docx import Document
doc = Document()
p = doc.add_paragraph()
# 将字体设置为10.5磅,即五号字体
p.style.font.size = Pt(10.5)
print(p.style.font.size)
print(p.style.font.size.pt)
print(p.style.font.size.inches)
print(p.style.font.size.cm)
结果是:
133350
10.5
0.14583333333333334
0.37041666666666667
也就是说,10.5磅字体相当于0.14583333333333334英寸、0.37041666666666667厘米或133350。
那么,在了解了字体大小问题之后,我们只要知道如何改变缩进以及如何获取字体大小就可以完美实现两个字符的缩进了。同时,在实际编程中,我们往往不需要字体的各种单位的转换,只要能获取到字体大小,然后将其乘二赋值给缩进属性即可。ok,上代码。
from docx.shared import Pt
from docx import Document
doc = Document()
p = doc.add_paragraph("我是五号字体"*10)
p.style.font.size = Pt(10.5)
# 段落对象p的paragraph_format.first_line_indent属性可以设置段落首行的缩进
# 段落对象p的style.font.size获取字体大小,将其乘二就是两个字符的大小
p.paragraph_format.first_line_indent = p.style.font.size * 2
doc.save("缩进测试.docx")
运行之后,你会得到这样的一份文件:
至此,需求解决,下班!
来源:https://blog.csdn.net/weixin_47383889/article/details/119847787
猜你喜欢
- 阅读上一篇:你是真正的用户体验设计者吗? Ⅱ系统和用户环境设计苹果系统成功在于系统架构。简化系统本身,设备只能变得更好、更小、性能更强大。在
- 队列(queue)队列是先进先出(FIFO, First-In-First-Out)的线性表,在具体应用中通常用链表或者数组来实现,队列只允
- 遇到的问题:用户批量导入数据1000条,导入不成功的问题,提示查询不到商品资料。这个场景需要依靠批量的数据,每次测试的时候需要手动生成批量的
- 在日常的生活和工作中,我们经常会遇到一些大小问题,其中有很多的问题,都是可以使用一些简单的Python代码就能解决。比如不久前的复旦大佬,用
- 如何在页面错误时向数据库中添加记录?在ASP中,我在页面中添加了On Error Resume Next错误命令,以消除和避免程序错误。现在
- 前期的入库筛选工作已经由url管理器完成了,整理的工作自然要由url下载器接手。当我们需要爬取的数据已经去重后,下载器的主要任务的是这些数据
- 可以通过model.state_dict()或者model.named_parameters()函数查看现在的全部可训练参数(包括通过继承得
- 本文实例讲述了Python基于hashlib模块的文件MD5一致性加密验证。分享给大家供大家参考,具体如下:使用hashlib模块,可对文件
- 映射类型: 表示一个任意对象的集合,且可以通过另一个几乎是任意键值的集合进行索引
- python保存文本文件的方法:使用python内置的open()类可以打开文本文件,向文件里面写入数据可以用write()函数,写完之后,
- 最近我在用梯度下降算法绘制神经网络的数据时,遇到了一些算法性能的问题。梯度下降算法的代码如下(伪代码):def gradient_desce
- 本文实例讲述了Python实现拼接多张图片的方法。分享给大家供大家参考。具体分析如下: 这里所述计划实现如下操作: ①
- 前言:Python 自带了很多的内置函数,极大地方便了我们的开发,下面就来挑几个内置函数,看看底层是怎么实现的。内置函数位于 Python/
- 为什么要修改镜像源?一般使用python安装库,会用到pip install xxx 指令或者conda install xxx指令,因为p
- 前言大家好,我是辣条今天给大家带来几个实用的python脚本工具,原因不难猜这段时间我亲爱的女朋友呢给我整出点小花样,差点让我电脑GG了。我
- 环境:Zend Studio 8.0Zend Studio是PHP开发者的首选开发工具,其地位相当于微软开发工具中的Visual Studi
- 介绍分面是指事物的多维度属性。例如一本书包含主题、作者、年代等分面。而分面搜索是指通过事物的这些属性不断筛选、过滤搜索结果的方法。可以将分面
- 本文实例讲述了Python常用字符串替换函数strip、replace及sub用法。分享给大家供大家参考,具体如下:今天在做一道今年秋季招聘
- 系列目录:1. 服务器XMLHTTP(Server XMLHTTP in ASP)基础2. 
- 1、简介在python自动化中,我们传递一些参数是需要从文件中读取过来的,读取过来的字典并非python对象数据类型而是string类型。这