欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 新车 > python-docx -- Text文本的操作

python-docx -- Text文本的操作

2024/10/23 6:56:03 来源:https://blog.csdn.net/weixin_45228198/article/details/143076660  浏览:    关键词:python-docx -- Text文本的操作

文章目录

  • 概念理解
  • 段落属性
  • 字符格式

概念理解

  • 块级对象,独自占据一整行;

    • Paragraph段落是Word中主要的块级对象,文本超出边界后,新增一行;
    • Table 是块级对象
  • 内联对象,出现在块级对象内部;

    • Run对象,最常用的内联对象,在一个段落中设置字符的样式,如字体、大小、颜色、样式等;块级对象中的所有内容都在内联对象中;
  • 块级对象用来设置它在页面中的布局,如缩进、与前后段落的间距等;

  • 内联对象用来设置文本的字体、大小、加粗、倾斜

 

段落属性

  • paragraph对象 .paragraph_format 获取段落的格式化属性;
  • 段落水平对齐
>>> from docx.enum.text import WD_ALIGN_PARAGRAPH
>>> document = Document()
>>> paragraph = document.add_paragraph()
>>> paragraph_format = paragraph.paragraph_format>>> paragraph_format.alignment
None  # indicating alignment is inherited from the style hierarchy
>>> paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER
>>> paragraph_format.alignment
CENTER (1)
  • 段落缩进
    • paragraph_format.left_indent;
    • paragrah_format.right_indent;
    • paragraph_format.first_line_indent, 左缩进,设置为负值时为悬挂缩进
>>> from docx.shared import Inches # 英寸  1英寸=2.54cm 厘米Cm
>>> paragraph = document.add_paragraph()
>>> paragraph_format = paragraph.paragraph_format>>> paragraph_format.left_indent # 左缩进
None  # indicating indentation is inherited from the style hierarchy
>>> paragraph_format.left_indent = Inches(0.5)
>>> paragraph_format.left_indent
457200
>>> paragraph_format.left_indent.inches
0.5>>> from docx.shared import Pt, Cm # 磅   1Pt = 1/72 Inches
>>> paragraph_format.right_indent
None
>>> paragraph_format.right_indent = Pt(24)
>>> paragraph_format.right_indent
304800
>>> paragraph_format.right_indent.pt
24.0
  • 行间距
>>> from docx.shared import Length
>>> paragraph_format.line_spacing
None  # 表示继承之前的行间距
>>> paragraph_format.line_spacing_rule # docx.enum.WD_LINE_SPACING 中的枚举值
None>>> paragraph_format.line_spacing = Pt(18) # 绝对行间距 
>>> isinstance(paragraph_format.line_spacing, Length)
True
>>> paragraph_format.line_spacing.pt
18.0
>>> paragraph_format.line_spacing_rule
EXACTLY (4)>>> paragraph_format.line_spacing = 1.75 # 浮点数,相对行间距 (xx倍行高)
>>> paragraph_format.line_spacing
1.75
>>> paragraph_format.line_spacing_rule
MULTIPLE (5)
  • 分页属性
    三态属性,值为True/False/None;
>>> paragraph_format.keep_together = True  # 整个段落 在同一个页面
>>> paragraph_format.keep_with_next = True  # 将该段落 与下一个段落放在同一个页面
>>> paragraph_format.page_break_before = False # 将一个段落放在一个新页面的顶部
>>> paragraph_format.window_control = True # 避免首行或者尾行与其他部分分在不同的页面上

字符格式

  • 字符格式应用于Run对象,包括字体、大小、加粗、 倾斜、下划线;
  • run对象可以调用font属性,访问其Font对象,设置字符格式;
  • Font对象的很多属性都是三态的,值为True, False, or None;
  • Font类位置在 docx.text.run.Font
>>> run = paragraph.add_run()
>>> font = run.font
>>> font.name = 'Calibri' # 设置字体
>>> font.size = Pt(12) # 设置大小
>>> font.bold = True # 字体加粗
>>> font.italic = True # 字体倾斜
>>> font.all_caps = True # 全部大写字母
>>> font.color = ColorFormat # 设置字体颜色
font.hidden = True  # 文本隐藏;
font.highlight_color # 高亮显示的颜色
font.no_proof = True # 文本不做语法检查
font.outline = True # 设置轮廓线
font.shadow = True # 设置阴影
font.subscript = True # run 内的文本显示为下标;
font.superscript = True # run 内的文本显示为上标# 下划线
font.underline = True # 文本下划线, False 无下划线;
# 下滑线 给枚举值
from docx.enum.text import WD_UNDERLINE
font.underline = WD_UNDERLINE.DOT_DASH
# 其他枚举值 https://python-docx.readthedocs.io/en/latest/api/enum/WdUnderline.html#wdunderline
  • Font对象设置颜色
>>> from docx.shared import RGBColor
>>> font.color.rgb = RGBColor(0x42, 0x24, 0xE9) # font.color ==> ColorFormat对象>>> from docx.enum.dml import MSO_THEME_COLOR
>>> font.color.theme_color = MSO_THEME_COLOR.ACCENT_1

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com