python-docx如何缩进两个字符

 更新时间:2022年11月26日 14:42:31   作者:Bertramoon  
笔者遇到这样的需求要求正文内容每段首行顶两格,也就是向右缩进两个字符,怎么操作呢?下面小编给大家带来了python-docx的缩进问题——如何缩进两个字符,需要的朋友可以参考下

事情是这样的,笔者在使用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")

运行之后,你会得到这样的一份文件:

文件

至此,需求解决,下班!

到此这篇关于python-docx的缩进问题——如何缩进两个字符的文章就介绍到这了,更多相关python-docx缩进两字符内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 15个短代码示例理解python丰富的编程思维

    15个短代码示例理解python丰富的编程思维

    这篇文章主要为大家介绍了python丰富的编程思维,文中通过python的几行短代码示例来给大家进行详细的讲解,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-11-11
  • Python中列表复制的常用方法解析

    Python中列表复制的常用方法解析

    在Python编程中,经常需要对列表进行复制或克隆操作,以便保护原始数据或创建独立的副本,本文将详细介绍如何在Python中进行列表克隆,以及如何选择合适的方法来保护数据,希望对大家有所帮助
    2024-02-02
  • Python3实现打印任意宽度的菱形代码

    Python3实现打印任意宽度的菱形代码

    这篇文章主要介绍了Python3实现打印任意宽度的菱形代码,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-04-04
  • Python实现自动装机功能案例分析

    Python实现自动装机功能案例分析

    这篇文章主要介绍了Python实现自动装机功能,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-10-10
  • 利用Matlab绘制各类特殊图形的实例代码

    利用Matlab绘制各类特殊图形的实例代码

    作为一个功能强大的工具软件,Matlab具有很强的图形处理功能,提供了大量的二维、三 维图形函数,这篇文章主要给大家介绍了关于如何利用Matlab绘制各类特殊图形的相关资料,需要的朋友可以参考下
    2021-07-07
  • Python读取word文本操作详解

    Python读取word文本操作详解

    这篇文章主要介绍了Python读取word文本操作详解,介绍了涉及到的模块,相关概念,模块的安装等内容,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-01-01
  • OpenCV半小时掌握基本操作之直方图

    OpenCV半小时掌握基本操作之直方图

    这篇文章主要介绍了OpenCV基本操作之直方图,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-09-09
  • Python并查集Disjoint Set的具体使用

    Python并查集Disjoint Set的具体使用

    本文主要介绍了Python并查集Disjoint Set的具体使用,包括并查集的基本概念、实现方式、路径压缩和应用场景,并使用代码示例演示并查集的操作,感兴趣的可以了解一下
    2024-01-01
  • python threading和multiprocessing模块基本用法实例分析

    python threading和multiprocessing模块基本用法实例分析

    这篇文章主要介绍了python threading和multiprocessing模块基本用法,结合实例形式详细分析了Python中threading和multiprocessing模块基本概念、功能、使用方法及相关操作注意事项,需要的朋友可以参考下
    2019-07-07
  • pandas将numpy数组写入到csv的实例

    pandas将numpy数组写入到csv的实例

    今天小编就为大家分享一篇pandas将numpy数组写入到csv的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07

最新评论