python docx 中文字型設定

2021-08-05 19:52:05 字數 910 閱讀 8779

最近用到了docx生成word文件,docx本身用起來很方便,自帶的各種樣式都很好看,美中不足的就是對中文的支援不夠好。在未設定中文字型的時候,生成的文件雖然可以顯示中文,但是筆畫大小不一,很難看。

解決辦法:

首先建立乙個文件,要先宣告乙個document:

from docx import document

document = document()

docx內建的樣式都可以通過document.styles取到。

正文是normal, 標題樣式根據標題宣告的基本,分別從heading 1 到heading 9, 另外還有table、list等各種word對應的樣式。可以通過遍歷document.styles檢視。

我們以正文normal為例。先來看看涉及字型更改的是style object裡面的哪些屬性。

1. document.styles[『normal』].font.name

有興趣深入研究的同學可以看看官方文件對font的介紹 在這裡我們只需要更改font.name。

2. document.styles[『normal』]._element.rpr.rfonts

只更改font.name是不夠的,還需要呼叫._element.rpr.rfonts的set()方法。

綜合起來這樣

from docx.oxml.ns import qn

document.styles['normal'].font.name = u'宋體'

document.styles['normal']._element.rpr.rfonts.set(qn('w:eastasia'), u'宋體')

問題解決, **中字型成功更改為」宋體」.

linux中文字型

背景說明 報表,在windows下,展現 匯出都正常,在linux下,字型變大了。比如,單元格的大小設計好後,裡面的字當好能一行顯示完,將報表放到linux下後,字變大了,一行顯示不完了,變成了兩行,這樣會影響我們報表的美觀。出現這樣的問題,是什麼原因呢?我們又怎麼解決呢?看下面的原因和方法。應用舉...

python matplotlib 中文字型設定

matplotlib是畫圖利器,可惜中文支援不夠好,不設中文字型畫出的裡面的中文全是小框框,筆者也是google了許多次,嘗試了好幾種方法,終於弄對了。思路就是找乙個ttf檔案,可以直接用windows系統裡面ttf檔案,然後建立自己的font,將文字使用的font設定為自己建立的font就可以了。...

CSS 中文字型

轉自 今天在對 原創草根文學 瀏覽器在讀取css時不能識別中文,如果在css開頭附加上 charset gb2312 就能解決此問題,看來是igone自身的問題,與lbs部落格沒啥關係哈,罪過罪過,還有中可能就是lbs系統在讀取css檔案時沒有自動新增 charset gb2312 這個東東 另外還...