Skip to content

Latest commit

 

History

History
308 lines (238 loc) · 7.18 KB

471-2293763-格式与样式_字体大小_斜体_italic_加粗_bold.sy.md

File metadata and controls

308 lines (238 loc) · 7.18 KB
show version enable_checker
step
1.0
true

设置段落

回忆

  • 上次了解了word文件的结构

    1. 顶级元素 为 文档(document)
    2. 文档(document) 下面为 段落(paragraph)
    3. 段落(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上
    • 可以设置格式
    • 格式 会覆盖 样式
  • 我们尝试制作一个有用的文档吧!
  • 我们下次再说!👋🏻