经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Python » 查看文章
python-docx如何缩进两个字符
来源:jb51  时间:2022/11/28 8:56:07  对本文有异议

事情是这样的,笔者在使用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磅字体(五号)对应的各个单位的大小验证一下

  1. from docx.shared import Pt
  2. from docx import Document
  3.  
  4. doc = Document()
  5. p = doc.add_paragraph()
  6. # 将字体设置为10.5磅,即五号字体
  7. p.style.font.size = Pt(10.5)
  8.  
  9. print(p.style.font.size)
  10. print(p.style.font.size.pt)
  11. print(p.style.font.size.inches)
  12. print(p.style.font.size.cm)

结果是:

133350
10.5
0.14583333333333334
0.37041666666666667

也就是说,10.5磅字体相当于0.14583333333333334英寸、0.37041666666666667厘米或133350。

那么,在了解了字体大小问题之后,我们只要知道如何改变缩进以及如何获取字体大小就可以完美实现两个字符的缩进了。同时,在实际编程中,我们往往不需要字体的各种单位的转换,只要能获取到字体大小,然后将其乘二赋值给缩进属性即可。ok,上代码。

  1. from docx.shared import Pt
  2. from docx import Document
  3.  
  4. doc = Document()
  5. p = doc.add_paragraph("我是五号字体"*10)
  6. p.style.font.size = Pt(10.5)
  7.  
  8. # 段落对象p的paragraph_format.first_line_indent属性可以设置段落首行的缩进
  9. # 段落对象p的style.font.size获取字体大小,将其乘二就是两个字符的大小
  10. p.paragraph_format.first_line_indent = p.style.font.size * 2
  11. doc.save("缩进测试.docx")

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

文件

至此,需求解决,下班!

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

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号