python-docx如何縮進兩個字符
事情是這樣的,筆者在使用docx庫的時候遇到了文字的縮進問題,具體需求是:
正文內(nèi)容每段首行頂兩格,也就是向右縮進兩個字符,像這樣:

需求看似很簡單嘛,于是我就上網(wǎng)查,結(jié)果很多是說設(shè)置縮進為Cm(0.74),也有的說是直接用數(shù)字表示,總之都很花,感覺沒講到點子上(當然可能是我搜索有問題)。于是,我查看了一下字體大小的問題,總算撥云見日。
在平時使用辦公軟件的時候,我們習慣于使用Tab鍵縮進,并且軟件還有自動縮進的功能。但其實縮進兩個字符到底是縮進多大,是需要看你的字體大小的,比如說五號字體縮進2個字符的話就是需要縮進2個五號字體的大?。牼幌捜缏犚幌挘?8磅的字體縮進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() # 將字體設(shè)置為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)
結(jié)果是:
133350
10.5
0.14583333333333334
0.37041666666666667
也就是說,10.5磅字體相當于0.14583333333333334英寸、0.37041666666666667厘米或133350。
那么,在了解了字體大小問題之后,我們只要知道如何改變縮進以及如何獲取字體大小就可以完美實現(xiàn)兩個字符的縮進了。同時,在實際編程中,我們往往不需要字體的各種單位的轉(zhuǎn)換,只要能獲取到字體大小,然后將其乘二賦值給縮進屬性即可。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屬性可以設(shè)置段落首行的縮進
# 段落對象p的style.font.size獲取字體大小,將其乘二就是兩個字符的大小
p.paragraph_format.first_line_indent = p.style.font.size * 2
doc.save("縮進測試.docx")運行之后,你會得到這樣的一份文件:

至此,需求解決,下班!
到此這篇關(guān)于python-docx的縮進問題——如何縮進兩個字符的文章就介紹到這了,更多相關(guān)python-docx縮進兩字符內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python?pandas分割DataFrame中的字符串及元組的方法實現(xiàn)
本文主要介紹了python?pandas分割DataFrame中的字符串及元組的方法實現(xiàn),主要介紹了3種方法,具有一定的參考價值,感興趣的可以了解一下2022-03-03
把csv文件轉(zhuǎn)化為數(shù)組及數(shù)組的切片方法
今天小編就為大家分享一篇把csv文件轉(zhuǎn)化為數(shù)組及數(shù)組的切片方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07
Python大數(shù)據(jù)之從網(wǎng)頁上爬取數(shù)據(jù)的方法詳解
這篇文章主要介紹了Python大數(shù)據(jù)之從網(wǎng)頁上爬取數(shù)據(jù)的方法,結(jié)合實例形式詳細分析了Python爬蟲爬取網(wǎng)頁數(shù)據(jù)的相關(guān)操作技巧,需要的朋友可以參考下2019-11-11

