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缩进两字符内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python使用python-docx读写word文档

    python-docx库可用于创建和编辑Microsoft Word(.docx)文件. 官方文档:链接地址 备注: doc是微软的专有的文件格式,docx是Microsoft Office2007之后版本使用,其基于Office Open XML标准的压缩文件格式,比 doc文件所占用空间更小.docx格式的文件本质上是一个ZIP文件,所以其实也可以把.docx文件直接改成.zip,解压后,里面的 word/document.xml包含了Word文档的大部分内容,图片文件则保存在word/me

  • 安装python-docx后,无法在pycharm中导入的解决方案

    又遇到了一个坑.. 类似于安装py2neo时遇到的问题差不多... 今天准备试一下docx,按照网上的步骤直接在命令行中 pip install python-docx 打开命令 python >>>import docx 没有报错,磨刀霍霍准备在pycharm中试一下 打开pycharm傻眼了... 找不到 docx模块..可是明明已经安装了..在D:\Python3_7_1\Lib\site-packages也找到了docx文件夹 几经搜索,终于知道了在pycharm中使用第三方包,

  • python-docx修改已存在的Word文档的表格的字体格式方法

    搞了好几天的表格字体格式,一直想找一种能直接一次性修改表格所有字体格式的方法(函数),但是无论用什么方法都无法修改表格字体的格式,原因应该是已存在的文档本身就具有某种格式限制,制约着里面表格里面字体格式的更改,直接用类似:table.style.font.name='Arial',table.style.font.size = 120000-.之类的函数是不能更改表格的字体格式的(PS:可能该功能在开发中,也可能我没找到对应直接修改整个表格里面字体的方法) 但是后来发现表格里面用run = ad

  • python-docx 页面设置详解

    目录 初识word文档-节-的概念 设置页边距 设置纸张方向和大小 设置分栏 总结 初识word文档-节-的概念 编辑一篇word文档,往往首先从页面设置开始,从下图可以看出,页面设置常操作的有页边距.纸张方向.纸张大小4个,而在word中是以节(section)来分大的块,每一节的页面设置可以不同.所以在python-docx中也是一样,当前节的各项属性全部保存在当前的section中,要想设置当前节的页面就从了解section的各个属性应用开始吧. 如果用python-docx新建一个空白文

  • 详解用 python-docx 创建浮动图片

    相信大家对python-docx这个常用的操作docx文档的库都不陌生,它支持以内联形状(Inline Shape)的形式插入图片,即图片和文本之间没有重叠,遵循流动版式(flow layout).但是,截至最新的0.8.10版本,python-docx尚不支持插入浮动图片(floating picture).这显然不能满足丰富多彩的文档样式的需要,因此本文探究基于python-docx插入浮动图片--剖析xml.追踪源码,最后得到完整代码. 问题提出 作者在尝试实现PDF文档转docx(pdf

  • Python-docx 实现整体修改或者部分修改文字的大小和字体类型

    Python中可以用docx来生成word文档,docx中可以自定义文字的大小和字体等. 其中要整体修改文字的字体大小和字体,可以用以下方法: newfile = docx.Document() newfile.styles['Normal'].font.name = 'Times New Roman' newfile.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体') 设置字体的两句一定要一起用才能起作用,其中 n

  • python-docx如何缩进两个字符

    事情是这样的,笔者在使用docx库的时候遇到了文字的缩进问题,具体需求是: 正文内容每段首行顶两格,也就是向右缩进两个字符,像这样: 需求看似很简单嘛,于是我就上网查,结果很多是说设置缩进为Cm(0.74),也有的说是直接用数字表示,总之都很花,感觉没讲到点子上(当然可能是我搜索有问题).于是,我查看了一下字体大小的问题,总算拨云见日. 在平时使用办公软件的时候,我们习惯于使用Tab键缩进,并且软件还有自动缩进的功能.但其实缩进两个字符到底是缩进多大,是需要看你的字体大小的,比如说五号字体缩进2

  • python使用threading.Condition交替打印两个字符

    Python中使用threading.Condition交替打印两个字符的程序. 这个程序涉及到两个线程的的协调问题,两个线程为了能够相互协调运行,必须持有一个共同的状态,通过这个状态来维护两个线程的执行,通过使用threading.Condition对象就能够完成两个线程之间的这种协调工作. threading.Condition默认情况下会通过持有一个ReentrantLock来协调线程之间的工作,所谓可重入锁,是只一个可以由一个线程递归获取的锁,此锁对象会维护当前锁的所有者(线程)和当前所

  • Python docx库用法示例分析

    本文实例分析了Python docx库用法.分享给大家供大家参考,具体如下: 打开及保存文件: from docx import Document document = Document('test.docx') document.save('test.docx') 添加文本: document.add_paragraph('test text') 调整文本位置格式为居中: from docx import Document from docx.enum.text import WD_ALIGN

  • Python 删除连续出现的指定字符的实例

    源起 我本想删写一小段代码用于删除一串字符串中的连续重复的指定字符,可能也是长时间不写代码,而且有的时候写代码只途快,很多基础知识都忘光了.我用Python写时一切都没有问题,就差一点,就是我随时删除这字符串所以每一次循环的字符串的长度都不一样,所以我想没删除一次字符,能够从inde=0开始重新循环字符串,于是在循环的最后强行设置index=0,无奈不行.扣嗤两个小时后我终于决定换个方法.. 我在各博客中看到一句话,"这是一个堆栈就能搞定的问题",想想,是啊.我从网上又看到Python

  • python不相等的两个字符串的 if 条件判断为True详解

    今天遇到一个非常基础的问题,结果搞了好久好久.....赶快写一篇博客记录一下: 本来两个不一样的字符串,在if 的条件判断中被判定为True,下面是错误的代码: test_str = 'happy' if test_str == 'good' or 'happy': #这样if判断永远是True,写法错误 print('aa') else: print('bbbb') 这是正确的代码: test_str = 'happy' if test_str == 'good' or test_str ==

  • Python代码需要缩进吗

    Python则是通过缩进来识别代码块的. 缩进 Python最具特色的是用缩进来标明成块的代码.我下面以if选择结构来举例.if后面跟随条件,如果条件成立,则执行归属于if的一个代码块. 先看C语言的表达方式(注意,这是C,不是Python!) if ( i > 0 ) { x = 1; y = 2; } 如果i > 0的话,我们将进行括号中所包括的两个赋值操作.括号中包含的就是块操作,它隶属于if. 在Python中,同样的目的,这段话是这样的 if i > 0: x = 1 y =

  • Python docx库删除复制paragraph及行高设置图片插入示例

    目录 引言 1.复制paragraph 2.删除paragraph 3.插入图片和paragraph行高设置 引言 这两天做一个python小工具,用到了docx库,涉及到paragraph的删除.,还有行高设置等技术,这里做一下记录. 1.复制paragraph 即用来原文档的加粗.斜体,下划线,颜色等属性的,官方没有提供paragraph的接口,只能自己实现: # paragraph 的 def get_para_data(output_doc_name, paragraph): "&quo

  • Python实现将图片转换为ASCII字符画

    目录 前言 字符画图片生成 字符画文字的生成 前言 要将图片转换为字符图其实很简单,我们首先将图片转换为灰度图像,这样图片的每个像素点的颜色值都是0到255,然后我们选用一些在文字矩形框内占用面积从大到小的ASCII码字符,我经过一番观察选择了如下字符: ascii_chars = "MNHQ$OC67+>!:-. " 很明显M的笔画比N多,缩小到足够小之后就会体现出M的颜色比N更深,大家若能够找到更能够体现这种特征的字符,也可以替换. 然后我们只需要将图片的目标像素点映射到这批

  • js 限制表单输入长度 汉字为两个字符

    将该效果整合成了一个函数,此函数接受3个参数: 第一个为textarea或其他text表单的ID: 第二个为显示输入内容的ID,可留空: 第三个为最多输入的字符,一个汉字为2个字符. 这只是一个基础效果,欢迎同学们进行优化和改进. 要获取代码请查看demo的源文件 限制表单输入长度 汉字为两个字符 function lengthLimit(elem, showElem, max){ var elem = document.getElementById(elem); var showElem =

  • JS判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个)

    js判断输入字符串长度实例代码(汉字算两个字符,字母数字算一个) 文本输入时,由于数据库表字段长度限制会导致提交失败,因此想到了此方法验证. 废话不多说上代码: <html> <head> <title>js判断输入字符串长度(汉字算两个字符,字母数字算一个)</title> <style type="text/css"> .pbt { margin-bottom: 10px; } .ie6 .pbt .ftid a, .ie

随机推荐