|
python-docx 设置字体
- from docx import Document
- from docx.enum.text import WD_PARAGRAPH_ALIGNMENT as ALIGN
- from docx.shared import Pt
- from docx.oxml.ns import qn
- from docx.oxml import OxmlElement
- doc = Document()
- # 文件头
- heading = doc.add_heading()
- heading.alignment = ALIGN.CENTER
- run0 = heading.add_run(tump[0]['s_path'][:-5])
- run0.font.name = '华文楷体'
- run0._element.rPr.rFonts.set(qn('w:eastAsia'), '华文楷体') # 对于中文支持
- run0.font.size = Pt(12)
- run0.font.bold = True
- paragraph = doc.add_paragraph()
- run = paragraph.add_run(text)
- run.font.name = '华文楷体'
- # 检查rPr是否存在,如果不存在则创建
- if run._element.rPr is None:
- run._element.rPr = OxmlElement('w:rPr')
- run._element.rPr.rFonts.set(qn('w:eastAsia'), '华文楷体') # 对于中文支持
- run.font.size = Pt(12)
- # save当目标文件存在的时候,自动覆盖。
- doc.save(dest_)
复制代码
- from docx import Document
- from docx.shared import Pt
- from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
- from docx.oxml.ns import qn
- from docx.oxml import OxmlElement
-
- def set_custom_font(run, font_name, font_size, is_bold=False):
- """设置字体和大小,支持自定义字体"""
- run.font.name = font_name
- run.font.size = Pt(font_size)
- run.font.bold = is_bold
-
- def add_custom_font_to_doc(doc, font_name):
- """向文档中添加自定义字体"""
- font = OxmlElement('w:font')
- font.set(qn('w:name'), font_name)
- style = doc.styles['Normal']
- style.font.set(qn('w:eastAsia'), font)
-
- def main():
- # 创建一个文档对象
- doc = Document()
-
- # 添加一个段落
- paragraph = doc.add_paragraph()
- paragraph.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER # 居中对齐(可选)
-
- # 创建一个运行对象并设置其样式
- run = paragraph.add_run('这里是要设置的文本')
- set_custom_font(run, '华文楷体', 12, True) # 12对应小四字号,True表示加粗
-
- # 如果Word中没有预装华文楷体,需要添加自定义字体支持(此步骤在某些情况下可能不需要)
- # add_custom_font_to_doc(doc, '华文楷体')
-
- # 保存文档
- doc.save('example.docx')
-
- if __name__ == '__main__':
- main()
复制代码
自定义字体:如果你的Word模板中没有“华文楷体”,可能需要将该字体添加到Word中或者确保你的系统中已安装该字体。在Word中直接添加字体的方法通常是通过“字体设置”对话框。但在某些情况下,如使用python-docx直接生成文档时,你可能需要手动安装字体或者在系统中已有该字体。对于后者,上面的代码中的add_custom_font_to_doc函数可能不是必需的,因为python-docx通常能识别已安装的字体。但如果遇到字体显示问题,可以尝试使用此函数。
字号:在Word中,“小四”字号通常对应于12磅(Pt)。在python-docx中设置字号时,使用Pt(12)即可。
加粗:通过run.font.bold = True设置文本加粗。
通过上述方法,你可以在Word文档中设置特定样式的文本。如果遇到字体不显示的问题,请确保你的系统或Word模板支持该字体,或者尝试在Word中手动添加该字体。
将文字变色:
- from docx import Document
- from docx.shared import RGBColor
- # 加载文档
- doc = Document('path_to_your_document.docx')
- # 定义青色
- cyan_color = RGBColor(0, 255, 255)
- # 假设我们要修改第一个段落的颜色
- paragraph = doc.paragraphs[0]
- # 遍历段落的Run对象并设置颜色
- for run in paragraph.runs:
- run.font.color.rgb = cyan_color
- # 保存文档
- doc.save('modified_document.docx')
复制代码
|
|