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")
效果展示

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- 安裝python-docx后,無法在pycharm中導入的解決方案
- Python安裝docx依賴包教程
- 使用Python docx修改word關鍵詞顏色的操作
- Python中docx2txt庫的使用說明
- python docx的超鏈接網址和鏈接文本操作
- 詳解用 python-docx 創建浮動圖片
- python 實現docx與doc文件的互相轉換