最近用到了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 這個東東 另外還...