Skip to content

Latest commit

 

History

History
373 lines (264 loc) · 7.16 KB

470-2290221-字体格式_倾斜_加粗_run_行内文字元素.sy.md

File metadata and controls

373 lines (264 loc) · 7.16 KB
show version enable_checker
step
1.0
true

设置段落

回忆

  • 上次研究了向文档添加对象的方法
    • add_paragraph
    • add_heading
    • add_page_break
  • 并且理解了格式的作用
    • 标题一
    • 标题二
    • 正文
  • 如何通过python设置字体格式呢?

构造基础

from docx import Document
document = Document()
document.add_paragraph("oeasy")
document.save("o.docx")
  • 得到文档后
    • 打开 并修改

图片描述

  • 将o的字体大小改成28
    • 然后保存

再次打开

  • 尝试用python打开
from docx import Document
document = Document("o.docx")
for paragraph in document.paragraphs:
	print(paragraph.text)
  • 可是
    • 看不出什么细节

图片描述

  • 现在应该深入paragraph

深入pragraph

  • :!python3
    • 进入游乐场
from docx import Document
document = Document("o.docx")
p = document.paragraphs[0]
print(p)
  • 找到这个paragraph

图片描述

  • p.
    • 按下 tab

图片描述

  • 发现 runs

观察runs

print(p.runs)
  • runs是一个列表
    • 里面有两个元素!!!

图片描述

  • runs里面有什么呢?
r = p.runs[0]
  • p.
    • 按下 tab
    • 没有提示
  • run是什么类型的呢?

观察run

type(paragraph.runs[0])
import docx
help(docx.text.run.Run)
  • 查看效果

图片描述

  • 有什么 成员函数和属性 呢?

查看函数

  • 可以添加各种对象
    • 分隔符
    • 图片
    • 制表符
    • 文字

图片描述

  • 具体还有什么属性呢?

查看更多

  • 各种属性
    • 斜体
    • 样式
    • 文本
    • 下划线

图片描述

  • 这个run的text究竟是什么呢?

遍历runs

for run in p.runs:
	print(run.text)
  • 结果

图片描述

  • 选中字母o后
    • 修改字体大小
    • 将一个段落分成两段
    • 是不是这样呢?

程序判断

  • 退出游乐场
    • 回到vim
from docx import Document
document = Document()
paragraph = document.add_paragraph("oeasy")
print(len(paragraph.runs))
  • 结果为1

图片描述

  • 结果验证了判断
    • 选择文字 修改字体大小
    • 将paragraph中的
    • runs 中的元素
    • 从 1个 变 2个

段落的构成

from docx import Document
document = Document()
paragraph = document.add_paragraph("oeasy")
print(paragraph.runs)
paragraph.add_run("o2z")
print(paragraph.runs[0].text)
print(paragraph.runs[1].text)
print(paragraph.text)
  • 运行结果

图片描述

  • Document文档 是 顶级元素
    • 文档中包含着 Paragraph段落
      • Paragraph段落 中包含着 run文本
  • 可以写进docx文件中观察吗?

写入文件

from docx import Document
document = Document()
paragraph = document.add_paragraph("oeasy")
print(paragraph.runs)
paragraph.add_run("o2z")
print(paragraph.runs[0].text)
print(paragraph.runs[1].text)
print(paragraph.text)
document.save("o.docx")
  • 整体上 是
    • 一段文字
    • 1 Paragraph

图片描述

  • 实际上
    • 分别属于
    • 两个不同的run
  • 不同的run
    • 可以有不同的字体和大小
  • 试试 进行设置

设置 粗体 和 斜体

from docx import Document
document = Document()
paragraph = document.add_paragraph("oeasy")
run = paragraph.add_run("o2z")
run.bold = True
run.italic = True
document.save("o.docx")
  • 设置粗体和斜体

图片描述

  • bold 和 italic 都是 run 的三值属性
    • True
    • False
    • None

图片描述

  • 可以设置更多格式吗?

继续查找帮助

import docx
help(docx.text.run.Run)
  • 找到一个属性
    • 下划线
    • underline

图片描述

  • 这个属性 可以有四种值
    • True
    • False
    • None
    • WdUnderline
  • 先试试True

试试下划线

from docx import Document
document = Document()
paragraph = document.add_paragraph("oeasy")
run = paragraph.add_run("o2z")
run.underline = True
document.save("o.docx")
  • 确实有了下划线

图片描述

搜索

图片描述

  • 和word中的类型是一致的

图片描述

  • 试试 WAVY_DOUBLE
  • 保存文件

下划线样式

from docx import Document
document = Document("o.docx")
p = document.paragraphs[0]
r = p.runs[0]
print(r.underline)
help(r.underline)
  • 查看类型

图片描述

观察来源

图片描述

  • 我如何使用python来进行设定呢?

追根溯源

  • 在游乐场
import docx
docx.enum
  • tab
    • 观察 细节

图片描述

  • WD_UNDERLINE
    • 属于 docx.enum.text这个module

编写程序

from docx import Document
from docx.enum.text import WD_UNDERLINE
document = Document()
paragraph = document.add_paragraph("oeasy")
run = paragraph.add_run("o2z")
run.underline = WD_UNDERLINE.DOTTED
document.save("o.docx")
  • 下划线

图片描述

  • 确实设置了点划线

总结

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

    1. 顶级元素 为 文档(document)
    2. 文档(document) 下面为 段落(paragraph)
    3. 段落(paragraph) 下面为 行内文字(run)
  • run 有一些属性

    • 加粗 Bold
    • 加斜 Italic
    • 下划线 underline
    • 其中下划线 可选择类型
  • 还可以往document里面add一些什么呢?🤔

  • 我们下次再说!👋🏻