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