show | version | enable_checker |
---|---|---|
step |
1.0 |
true |
-
上次了解了word文件的结构
- 顶级元素 为 文档(document)
- 文档(document) 下面为 段落(paragraph)
- 段落(paragraph) 下面为 行内文字(run)
-
run 有一些属性
- 加粗 Bold
- 加斜 Italic
- 下划线 underline
- 其中下划线 可选择类型
-
还可以往document里面add一些什么呢?🤔
from docx import Document
document = Document()
paragraph = document.add_paragraph("oeasy")
run = paragraph.add_run("o2z")
run
- 用 tab
- 观察 细节
from docx import Document
from docx.shared import Pt
document = Document()
paragraph = document.add_paragraph("oeasy")
run = paragraph.add_run("o2z")
run.font.size = Pt(33)
document.save("o.docx")
- 可以通过样式来修改
- 字体大小吗?
from docx.shared import Pt
from docx import Document
from docx.enum.style import WD_STYLE_TYPE
document = Document()
styles = document.styles
paragraph = document.add_paragraph("oeasy")
run = paragraph.add_run("o2z")
style = styles.add_style('oeasy',WD_STYLE_TYPE.CHARACTER)
style.font.name = "Calibri"
style.font.size = Pt(33)
run.style = style
document.save("o.docx")
- run.style.font.size 会 修改 run.font.size吗?
from docx.shared import Pt
from docx import Document
from docx.enum.style import WD_STYLE_TYPE
document = Document()
styles = document.styles
paragraph = document.add_paragraph("oeasy")
run = paragraph.add_run("o2z")
style = styles.add_style('oeasy',WD_STYLE_TYPE.CHARACTER)
style.font.name = "Calibri"
style.font.size = Pt(33)
run.style = style
print("style.font.size:",style.font.size)
print("run.font.size:",run.font.size)
document.save("o.docx")
- 效果
- 起作用的是style.font.size
- 也就是 样式中的 字体大小
- 但是如果
- 格式和样式 的字体大小
- 相冲突了呢?
from docx.shared import Pt
from docx import Document
from docx.enum.style import WD_STYLE_TYPE
document = Document()
styles = document.styles
paragraph = document.add_paragraph("oeasy")
run = paragraph.add_run("o2z")
style = styles.add_style('oeasy',WD_STYLE_TYPE.CHARACTER)
style.font.name = "Calibri"
style.font.size = Pt(33)
run.style = style
run.font.size = Pt(44)
print("style.font.size:",style.font.size)
print("run.font.size:",run.font.size)
document.save("o.docx")
- 运行结果
- 样式的字体是33Pt
- 但是 在oeasy样式的基础之上
- 修改 字体格式为44Pt
- 最终显示的 字体大小 为 格式字体大小 44Pt
- font 还有什么属性呢?
- 去游乐场试试
- 有些能看懂
- bold 粗体
- italic 斜体
- underline 下划线
- strike 中划线
- superscript 上标
- subscript 下标
from docx import Document
document = Document()
styles = document.styles
paragraph = document.add_paragraph("bold")
paragraph.runs[0].font.bold = True
paragraph = document.add_paragraph("italic")
paragraph.runs[0].font.italic = True
paragraph = document.add_paragraph("underline")
paragraph.runs[0].font.underline = True
paragraph = document.add_paragraph("strike")
paragraph.runs[0].font.strike = True
paragraph = document.add_paragraph("super")
run = paragraph.add_run("script")
run.font.superscript = True
paragraph = document.add_paragraph("sub")
run = paragraph.add_run("script")
run.font.subscript = True
document.save("o.docx")
- 结果
- 还有更多属性吗?
- run的字体粗体 和 style的字体粗体
- 如果冲突了
- 怎么办呢?
- italic 可以有三种状态
- True
- False
- None
from docx import Document
from docx.enum.style import WD_STYLE_TYPE
document = Document()
styles = document.styles
paragraph = document.add_paragraph("oeasy")
run = paragraph.add_run("o2z")
style = styles.add_style('oeasy',WD_STYLE_TYPE.CHARACTER)
style.font.italic = True
run.style = style
print("style.font.italic",style.font.italic)
print("run.font.italic",run.font.italic)
document.save("o.docx")
- 样式的斜体 为 True
- 格式的斜体 为 None
- 结果为斜体
- 如果两者 冲突了呢?
from docx import Document
from docx.enum.style import WD_STYLE_TYPE
document = Document()
styles = document.styles
paragraph = document.add_paragraph("oeasy")
run = paragraph.add_run("o2z")
style = styles.add_style('oeasy',WD_STYLE_TYPE.CHARACTER)
style.font.italic = True
run.font.italic = False
run.style = style
print("style.font.italic",style.font.italic)
print("run.font.italic",run.font.italic)
document.save("o.docx")
- 样式的斜体 为 True
- 格式的斜体 为 False
- 如果有了冲突
- 格式 优先级高于 样式
- 如果
- 格式和样式 各有 设置
- 会如何呢?
- 字体格式设置
- 33pt
- italic
- 字体样式设置
- 44pt
from docx import Document
from docx.shared import Pt
from docx.enum.style import WD_STYLE_TYPE
document = Document()
styles = document.styles
paragraph = document.add_paragraph("oeasy")
run = paragraph.add_run("o2z")
style = styles.add_style('oeasy',WD_STYLE_TYPE.CHARACTER)
run.font.italic = True
run.font.size = Pt(44)
style.font.size = Pt(44)
run.style = style
print("style.font.italic",style.font.italic)
print("run.font.italic",run.font.italic)
document.save("o.docx")
- italic
- 源自oeasy样式
- 44Pt
- 格式覆盖样式
- 这次我们研究了
- 格式
- 样式
- 格式 是
- 灵活的、一次性的 设置
- 样式 是
- 有预谋的、重复性的 设置
- 在 设置了 样式的run上
- 可以设置格式
- 格式 会覆盖 样式
- 我们尝试制作一个有用的文档吧!
- 我们下次再说!👋🏻