?导入需要的模块
from docx import Document
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import qn
from docx.shared import Pt, RGBColor
1.打开word文档
"""变量名可以自定义"""
document = Document()
2.在正文应用字符样式(字体,大小,颜色)
# 设置正文字型 英文字型:Times New Roman; 中文字型:宋体
document.styles['Normal'].font.name = 'Times New Roman'
document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')
# 设置正文字体大小
document.styles['Normal'].font.size = Pt(12)
# 设置正文字体颜色
document.styles['Normal'].font.color.rgb = RGBColor(0, 0, 0)
3.添加标题和段落
使用add_heading()方法添加标题
不推荐使用,标题格式比较特殊还需要后续处理。
content是要添加的内容。
level代表word文档内的标题等级,从0开始。
document.add_heading('content', level=1)
使用add_paragraph()方法添加段落
p_1 = document.add_paragraph('床前明月光\n疑是地上霜\n举头望明月\n低头思故乡', style='')
style设置段落样式,有两种类型:
①List Bullet:项目符号
②List Number:列表编号
4.设置段落对齐方式
paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTER
这里使用了CENTER这个枚举值。
对齐方式使用的枚举值
|
LEFT
|
左对齐
| CENTER |
居中对齐
| RIGHT |
右对齐
|
JUSTIFY
|
两端对齐
|
DISTRIBUTE
|
段落字符分布以填充段落的整个宽度
|
JUSTIFY_MED
|
使用中等字符压缩率对齐
|
JUSTIFY_HI
|
使用高字符压缩率进行对齐
|
JUSTIFY_LOW
|
使用低字符压缩率进行对齐
|
THAI_JUSTIFY
|
根据泰语格式布局对齐
|
5.设置粗体和斜体?
这里引用一下官方文档的说明:
In order to understand how bold(粗体) and italic(斜体) work, you need to understand a little about what goes on inside a paragraph. The short version is this:
- A paragraph holds all the?block-level(块级元素)?formatting, like indentation(缩进), line height, tabs, and so forth.
- Character-level formatting, such as bold and italic, are applied at the?run?level(运行级别). All content within a paragraph must be within a run, but there can be more than one. So a paragraph with a bold word in the middle would need three runs, a normal one, a bold one containing the word, and another normal one for the text after.
When you add a paragraph by providing text to the?method, it gets put into a single run. You can add more using the?method on the paragraph:. add_paragraph() .add_run()
?为此需要设置第一次运行的正常文本,这个文本可以为空。
P = document.add_paragraph('')
run = P.add_run("静夜思")
run.font.color.rgb = RGBColor(255, 0, 0)
run.font.size = Pt(14)
run.bold = True
P.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
?6.指定路径并保存文件
filename = '静夜思'
document.save('D:\桌面\{}.docx'.format(filename))
7.最终效果
8.示例代码?
from docx import Document
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.oxml.ns import qn
from docx.shared import Pt, RGBColor
document = Document()
# 设置正文字型 英文字型:Times New Roman; 中文字型:宋体
document.styles['Normal'].font.name = 'Times New Roman'
document.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), u'宋体')
# 设置正文字体大小
document.styles['Normal'].font.size = Pt(12)
# 设置正文字体颜色
document.styles['Normal'].font.color.rgb = RGBColor(0, 0, 0)
"""标题比较特殊需要单独设置"""
P = document.add_paragraph('')
run = P.add_run("静夜思")
run.font.color.rgb = RGBColor(255, 0, 0)
run.font.size = Pt(14)
run.bold = True
P.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
# 添加段落
p_1 = document.add_paragraph('床前明月光\n疑是地上霜\n举头望明月\n低头思故乡')
# 段落居中对齐
p_1.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
filename = '静夜思'
document.save('D:\桌面\{}.docx'.format(filename))
?附表1——字号磅值对应表
字号 | 磅值 | 初号 | 42 | 小初 | 36 | 一号 | 26 | 小一 | 24 | 二号 | 22 | 小二 | 18 | 三号 | 16 | 小三 | 15 | 四号 | 14 | 小四 | 12 | 五号 | 10.5 | 小五 | 9 | 六号 | 7.5 | 小六 | 6.5 | 七号 | 5.5 | 八号 | 5 |
附表2——常用颜色RGB值对照表?
常用颜色RGB值 | 颜色 | R | G | B | 黑色 | 0 | 0 | 0 | 白色 | 225 | 225 | 225 | 黄色 | 255 | 255 | 0 | 蓝色 | 0 | 0 | 255 | 红色 | 255 | 0 | 0 | 绿色 | 0 | 255 | 0 | 紫色 | 160 | 32 | 240 | 橙色 | 255 | 97 | 0 |
附表3——Word内置字符样式中英文对照表?
Word内置样式中英文对照表 | 中文 | 英文 | 中文 | 英文 | 正文 | Normal | 无间隔 | No Spaceing | 标题 1 | Heading 1 | 标题 2 | Heading 2 | 标题 | Title | 副标题 | Subtitle | 不明显强调 | Subtle Empahsis | 强调 | Emphasis | 明显强调 | Intense Empahsis | 要点 | Strong | 引用 | Quote | 明显引用 | Intense Quote | 不明显参考 | Subtle Reference | 明显参考 | Intense Reference | 书籍标题 | Book Title | 列表段落 | List Paragraph |
|