Python-docx 實現(xiàn)整體修改或者部分修改文字的大小和字體類型
Python中可以用docx來生成word文檔,docx中可以自定義文字的大小和字體等。
其中要整體修改文字的字體大小和字體,可以用以下方法:
newfile = docx.Document() newfile.styles['Normal'].font.name = 'Times New Roman' newfile.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋體')
設置字體的兩句一定要一起用才能起作用,其中
newfile.styles['Normal'].font.name = 'Times New Roman' 是用來設置當文字是西文時的字體,
newfile.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋體') 是用來設置當文字是中文時的字體。
有點類似Word中的
當只要設置一部分文字的字體,即不要整個文檔的字體都一樣時,可以用以下方法:
import docx from docx.oxml.ns import qn from docx.shared import Pt newfile = docx.Document() p1 = newfile.add_paragraph() text1 = p1.add_run("第一段文字是中文;The first paragraph is in English") p2 = newfile.add_paragraph() text2 = p2.add_run("第二段文字是中文;The second paragraph is in English") # 分別控制每個段落的字體 text1.font.size = Pt(15) # 字體大小 text1.bold = True # 字體是否加粗 text1.font.name = 'Times New Roman' # 控制是西文時的字體 text1.element.rPr.rFonts.set(qn('w:eastAsia'), '宋體') # 控制是中文時的字體 text2.font.size = Pt(10) text2.bold = False # 字體是否加粗 text2.font.name = 'Times New Roman' text2.element.rPr.rFonts.set(qn('w:eastAsia'), '黑體') newfile.save("newdocx.docx")
上面代碼是向文檔寫入了兩段文字,第一段中的中文是“宋體”的,而第二段中的中文是“黑體”的。
補充:python 使用 python-docx 調整 Word 文檔樣式
修改文字字體樣式
from docx import Document from docx.shared import Pt #設置像素、縮進等 from docx.shared import RGBColor #設置字體顏色 from docx.oxml.ns import qn doc = Document(r"../wordDemo/表彰大會通知.docx") for paragraph in doc.paragraphs: for run in paragraph.runs: run.font.bold = True run.font.italic = True run.font.underline = True run.font.strike = True run.font.shadow = True run.font.size = Pt(18) run.font.color.rgb = RGBColor(255,0,255) run.font.name = "黑體" # 設置像黑體這樣的中文字體,必須添加下面 2 行代碼 r = run._element.rPr.rFonts r.set(qn("w:eastAsia"),"黑體") doc.save(r"../wordDemo/表彰大會通知.docx")
效果展示
修改段落樣式
對齊樣式
from docx import Document from docx.enum.text import WD_ALIGN_PARAGRAPH #設置對象居中、對齊等。 doc = Document(r"../wordDemo/表彰大會通知.docx") print(doc.paragraphs[1].text) doc.paragraphs[1].alignment = WD_ALIGN_PARAGRAPH.CENTER # 這里設置的是居中對齊 doc.save(r"../wordDemo/表彰大會通知.docx")
效果展示
行間距調整
from docx import Document from docx.enum.text import WD_ALIGN_PARAGRAPH doc = Document(r"../wordDemo/表彰大會通知.docx") for paragraph in doc.paragraphs: paragraph.paragraph_format.line_spacing = 5.0 doc.save(r"../wordDemo/表彰大會通知.docx")
效果展示
段前與段后間距
from docx import Document from docx.enum.text import WD_ALIGN_PARAGRAPH from docx.shared import Pt doc = Document(r"../wordDemo/test.docx") for paragraph in doc.paragraphs: paragraph.paragraph_format.space_before = Pt(12) # 段前 paragraph.paragraph_format.space_after = Pt(10) # 段后 # Pt(12) 表示12磅 doc.save(r"../wordDemo/test.docx")
效果展示
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
相關文章
淺談Python2.6和Python3.0中八進制數(shù)字表示的區(qū)別
下面小編就為大家?guī)硪黄獪\談Python2.6和Python3.0中八進制數(shù)字表示的區(qū)別。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04在Python的Django框架下使用django-tagging的教程
這篇文章主要介紹了在Python的Django框架下使用django-tagging的教程,針對網(wǎng)絡編程中的tag部分功能提供幫助,需要的朋友可以參考下2015-05-05pytorch 實現(xiàn)凍結部分參數(shù)訓練另一部分
這篇文章主要介紹了pytorch 實現(xiàn)凍結部分參數(shù)訓練另一部分,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03Pytest單元測試框架如何實現(xiàn)參數(shù)化
這篇文章主要介紹了Pytest單元測試框架如何實現(xiàn)參數(shù)化,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-09-09Pandas讀取excel合并單元格的正確方式(openpyxl合并單元格拆分并填充內(nèi)容)
Excel文件中可能包含合并單元格的數(shù)據(jù),下面這篇文章主要給大家介紹了關于Pandas讀取excel合并單元格的正確方式,主要介紹的openpyxl合并單元格拆分并填充內(nèi)容,需要的朋友可以參考下2023-06-06