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


猜你喜欢
- 内容摘要:图片随机显示是一个应用非常广泛的技巧。比如随机banner的显示,当你进入一个网站时它的banner总是不同的,或者总有内容不同的
- 今天碰到这个极度郁闷的报错,搞了大半下午,才发现是ie的问题,忍不住大骂。例子是这样的:页面中有多处能出发菜单,并且菜单出现在触发点的旁边,
- --使用说明 本代码适用于MsSql2000,对于其它数据库也可用.但没必要 --创建存储过程 CREATE PROCEDURE pagin
- 本文实例讲述了Go语言实现AzDG可逆加密算法。分享给大家供大家参考。具体实现方法如下:package mainimport (
- EcmaScript正則表達式( 深入淺出系列之淺出 ^_^ )在线正则表达式测试:http://www.aspxhome.com/RegE
- 这个项目的名称与其叫做万能的XML不如叫做自动构建网站,根据一份XML文件,生成对应目录结构的网站,不过只有html还是太过于简单了,如果要
- 1、标识符与关键字在了解数据类型之前,先了解一下go的标识符和关键字1.1 标识符在编程语言中标识符就是定义的具有某种意义的词,比如变量名、
- 本章我们将介绍Django 管理工具及如何使用 Django 来创建项目,第一个项目我们以 HelloWorld 来命令项目。一、Djang
- 前言之前有人提了一个需求,我一看此需求用正则表达式最合适不过。考虑到之前每次使用正则表达式,都是临时抱佛脚,于是这次我就一边完成任务一边系统
- 目录1.在app下的models.py中创建新的模板2.数据迁移(用pycharm自带的Terminal工具即可)3.在app下的views
- 其实之前笔者写代码的时候用到模型的保存和加载,需要用的时候就去度娘搜一下大致代码,现在有时间就来整理下整个pytorch模型的保存和加载,开
- 首先先发一下我的项目路径1. 首先要下载 sass-resources-loadernpm install sass
- 酝酿了将近一个春夏秋冬的腾讯网首页终于亮剑!反响热烈!让我们来分享它成功背后的酸甜苦辣吧。腾讯网首页改版终于开花结果。于2008年3月25日
- 使用破解补丁方法虽然麻烦,但是可用激活到2099年,基本上是永久激活了,毕竟在座各位能活到这个年份也是寥寥无几了吧!!步骤一、下载破解补丁,
- (1) 单人脸情况import cv2import dlibpath = "1.jpg"img = cv2.imread
- Jupyter Notebook本身是默认使用一种Anaconda中root目录下的Python环境的,如果想使用其它的虚拟环境,还需要通过
- 这本来是翻译Estelle Weyl的《15 JavaScript Gotchas》,里面介绍的都是在JavaScript编程实践中平时容易
- 在pyplot模块中可以使用xlabel()和ylabel()函数设置x轴y轴的标签。这两个函数的使用方法非常相似。使用xlabel()设置
- 本文以实例形式简述了Python实现字符串排序的方法,是Python程序设计中一个非常实用的技巧。分享给大家供大家参考之用。具体方法如下:一
- 按需导入:安装插件首先需要引入额外的插件:前**vite-plugin-components已重命名为unplugin-vue-compon