python-docx如何縮進(jìn)兩個(gè)字符
事情是這樣的,筆者在使用docx庫(kù)的時(shí)候遇到了文字的縮進(jìn)問(wèn)題,具體需求是:
正文內(nèi)容每段首行頂兩格,也就是向右縮進(jìn)兩個(gè)字符,像這樣:
需求看似很簡(jiǎn)單嘛,于是我就上網(wǎng)查,結(jié)果很多是說(shuō)設(shè)置縮進(jìn)為Cm(0.74),也有的說(shuō)是直接用數(shù)字表示,總之都很花,感覺(jué)沒(méi)講到點(diǎn)子上(當(dāng)然可能是我搜索有問(wèn)題)。于是,我查看了一下字體大小的問(wèn)題,總算撥云見(jiàn)日。
在平時(shí)使用辦公軟件的時(shí)候,我們習(xí)慣于使用Tab
鍵縮進(jìn),并且軟件還有自動(dòng)縮進(jìn)的功能。但其實(shí)縮進(jìn)兩個(gè)字符到底是縮進(jìn)多大,是需要看你的字體大小的,比如說(shuō)五號(hào)字體縮進(jìn)2個(gè)字符的話就是需要縮進(jìn)2個(gè)五號(hào)字體的大?。?tīng)君一席話如聽(tīng)一席話),18磅的字體縮進(jìn)2個(gè)字符則是縮進(jìn)2個(gè)18磅字體的大小。在實(shí)際編程中,如果要考慮縮進(jìn)問(wèn)題的話,一定不能忽略字體大小。而說(shuō)到字體大小,它有很多種單位,最常見(jiàn)的單位有以下幾種:
- 中文(比如小初、五號(hào))
- 磅(pt)
- 毫米/厘米(mm/cm)
- 像素(px)
- 英寸(inch)
舉個(gè)例子,五號(hào)字體 = 10.5pt = 3.70mm = 14px = 0.146inch
首先,我們用代碼輸出一下10.5磅字體(五號(hào))對(duì)應(yīng)的各個(gè)單位的大小驗(yàn)證一下
from docx.shared import Pt from docx import Document doc = Document() p = doc.add_paragraph() # 將字體設(shè)置為10.5磅,即五號(hào)字體 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
也就是說(shuō),10.5磅字體相當(dāng)于0.14583333333333334英寸、0.37041666666666667厘米或133350。
那么,在了解了字體大小問(wèn)題之后,我們只要知道如何改變縮進(jìn)以及如何獲取字體大小就可以完美實(shí)現(xiàn)兩個(gè)字符的縮進(jìn)了。同時(shí),在實(shí)際編程中,我們往往不需要字體的各種單位的轉(zhuǎn)換,只要能獲取到字體大小,然后將其乘二賦值給縮進(jìn)屬性即可。ok,上代碼。
from docx.shared import Pt from docx import Document doc = Document() p = doc.add_paragraph("我是五號(hào)字體"*10) p.style.font.size = Pt(10.5) # 段落對(duì)象p的paragraph_format.first_line_indent屬性可以設(shè)置段落首行的縮進(jìn) # 段落對(duì)象p的style.font.size獲取字體大小,將其乘二就是兩個(gè)字符的大小 p.paragraph_format.first_line_indent = p.style.font.size * 2 doc.save("縮進(jìn)測(cè)試.docx")
運(yùn)行之后,你會(huì)得到這樣的一份文件:
至此,需求解決,下班!
到此這篇關(guān)于python-docx的縮進(jìn)問(wèn)題——如何縮進(jìn)兩個(gè)字符的文章就介紹到這了,更多相關(guān)python-docx縮進(jìn)兩字符內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python3實(shí)現(xiàn)打印任意寬度的菱形代碼
這篇文章主要介紹了Python3實(shí)現(xiàn)打印任意寬度的菱形代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04Python實(shí)現(xiàn)自動(dòng)裝機(jī)功能案例分析
這篇文章主要介紹了Python實(shí)現(xiàn)自動(dòng)裝機(jī)功能,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10利用Matlab繪制各類(lèi)特殊圖形的實(shí)例代碼
作為一個(gè)功能強(qiáng)大的工具軟件,Matlab具有很強(qiáng)的圖形處理功能,提供了大量的二維、三 維圖形函數(shù),這篇文章主要給大家介紹了關(guān)于如何利用Matlab繪制各類(lèi)特殊圖形的相關(guān)資料,需要的朋友可以參考下2021-07-07python threading和multiprocessing模塊基本用法實(shí)例分析
這篇文章主要介紹了python threading和multiprocessing模塊基本用法,結(jié)合實(shí)例形式詳細(xì)分析了Python中threading和multiprocessing模塊基本概念、功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-07-07pandas將numpy數(shù)組寫(xiě)入到csv的實(shí)例
今天小編就為大家分享一篇pandas將numpy數(shù)組寫(xiě)入到csv的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07