在现代办公环境中,Microsoft Word 已经成为了我们日常工作和学习中不可或缺的一部分。无论是撰写报告、制作简历还是设计宣传资料,Word 都为我们提供了丰富的功能和工具。其中,添加形状的功能尤其受到广大用户的喜爱,因为它能够让我们轻松地为文档增添视觉上的吸引力和表现力。对形状元素的操作是 Spire.Doc 功能亮点之一,本文将向您介绍如何使用 Spire.Doc for Python 添加或删除 Word 中的形状。
安装 Spire.Doc for Python
本教程需要 Spire.Doc for Python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它们轻松安装到 Windows 中。
pip install Spire.Doc
如果您不确定如何安装,请参考此教程:如何在 Windows 中安装 Spire.Doc for Python
Python 添加形状到 Word 文档
Spire.Doc for Python 支持添加多种形状,如矩形、梯形、三角形、箭头、线条、表情符号等多种预定义形状类型。通过调用 Paragraph.AppendShape(width:float,height:float,shapeType:'ShapeType') 方法,不仅可以轻松插入这些形状到文档中的任意位置,还可以自定义形状的各种属性,如填充颜色、边框样式、旋转角度以及透明度等,以满足不同的排版需求和视觉效果。以下是详细步骤:
- 创建 Document 类的对象。
- 调用 Document.AddSection() 以及 Section.AddParagraph() 方法分别添加一个章节,并再章节中添加一个段落。
- 调用 Paragraph.AppendShape(width:float,height:float,shapeType:'ShapeType') 方法在段落上添加一个形状,其中 width 和 height 分别代表形状的宽高,而 shapeType 枚举用于指定形状类型。
- 定义形状的样式,如填充色、边框色、边框样式以及宽度。
- 设置形状相对页面的水平和垂直位置。
- 同样的方法添加多个其他类型的形状。
- 使用 Document.SaveToFile() 方法保存文档。
- Python
from spire.doc import *
from spire.doc.common import *
# 创建一个新的Document对象
doc = Document()
# 在文档中添加一个新节
sec = doc.AddSection()
# 在新节中添加一个段落
para = sec.AddParagraph()
# 在段落中添加一个矩形形状,宽高均为60
shape1 =para.AppendShape(60, 60,ShapeType.Rectangle)
# 定义形状的填充色
shape1.FillColor = Color.get_YellowGreen()
# 定义边框颜色
shape1.StrokeColor = Color.get_Gray()
# 定义边框样式和宽度
shape1.LineStyle = ShapeLineStyle.Single
shape1.StrokeWeight = 1
# 设置形状基于页面的水平和垂直位置
shape1.HorizontalOrigin = HorizontalOrigin.Page
shape1.HorizontalPosition = 100
shape1.VerticalOrigin = VerticalOrigin.Page
shape1.VerticalPosition = 200
# 类似地,在同一段落中添加一个三角形形状,设置其属性
shape2 =para.AppendShape(60, 60,ShapeType.Triangle)
shape2.FillColor = Color.get_Green()
shape2.StrokeColor = Color.get_Gray()
shape2.LineStyle = ShapeLineStyle.Single
shape2.StrokeWeight = 1
shape2.HorizontalOrigin = HorizontalOrigin.Page
shape2.HorizontalPosition = 200
shape2.VerticalOrigin = VerticalOrigin.Page
shape2.VerticalPosition = 200
# 添加一个箭头形状,并设置其属性
shape3 =para.AppendShape(60, 60,ShapeType.Arrow)
shape3.FillColor = Color.get_SeaGreen()
shape3.StrokeColor = Color.get_Gray()
shape3.LineStyle = ShapeLineStyle.Single
shape3.StrokeWeight = 1
shape3.HorizontalOrigin = HorizontalOrigin.Page
shape3.HorizontalPosition = 300
shape3.VerticalOrigin = VerticalOrigin.Page
shape3.VerticalPosition = 200
# 添加一个笑脸形状,并设置其属性
shape4=para.AppendShape(60, 60,ShapeType.SmileyFace)
shape4.FillColor = Color.get_LightGreen()
shape4.StrokeColor = Color.get_Gray()
shape4.LineStyle = ShapeLineStyle.Single
shape4.StrokeWeight = 1
shape4.HorizontalOrigin = HorizontalOrigin.Page
shape4.HorizontalPosition = 400
shape4.VerticalOrigin = VerticalOrigin.Page
shape4.VerticalPosition = 200
# 保存文档
outputFile = "添加形状.docx"
doc.SaveToFile(outputFile, FileFormat.Docx2016)
# 释放资源
doc.Close()
Python 添加组合形状到 Word
Spire.Doc for Python 不仅提供对单一形状(如矩形、圆形、线条等)的添加功能,还支持创建和管理组合形状。组合形状是一种特殊的形状集合,它可以将多个独立的形状组织在一起形成一个整体,共享相同的变换属性(如位置、旋转角度等)。下面是具体的操作步骤:
- 创建 Document 类的对象。
- 调用 Document.AddSection() 方法添加一个空白章节。
- 调用 Section.AddParagraph() 方法在章节中添加一个空白段落。
- 调用 Paragraph.AppendShapeGroup() 添加形状组合并指定其尺寸。
- 创建 Textbox 文本框并指定其形状类型,尺寸,位置,填充颜色等属性。
- 在文本框内添加段落并插入文本,设置段落的水平对齐方式居中。
- 将文本框添加到形状组的子对象列表中。
- 同上述步骤类似,创建箭头符号的形状,钻石形状文本框,八边形形状文本框等并设置其属性,添加它们到形状组的子对象列表。
- 使用 Document.SaveToFile() 方法保存文档。
- Python
from spire.doc import *
from spire.doc.common import *
# 创建一个Document对象
doc = Document()
# 向文档中添加一个章节
sec = doc.AddSection()
# 在章节中添加一个段落
para = sec.AddParagraph()
# 在段落中添加一个形状组,并指定其水平位置
shapegroup = para.AppendShapeGroup(375, 350)
shapegroup.HorizontalPosition = 180
# 计算形状组的相对单位比例X和Y,便于后续元素尺寸定位
X = float((shapegroup.Width / 1000.0))
Y = float((shapegroup.Height / 1000.0))
# 创建一个圆角矩形文本框
txtBox = TextBox(doc)
# 设置文本框的形状类型
txtBox.SetShapeType(ShapeType.RoundRectangle)
# 设置文本框的宽度和高度
txtBox.Width = 125 / X
txtBox.Height = 54 / Y
# 在文本框内部添加一个段落,并设置其水平对齐方式为居中
paragraph = txtBox.Body.AddParagraph()
paragraph.Format.HorizontalAlignment = HorizontalAlignment.Center
# 向段落中添加文本“步骤一”
paragraph.AppendText("步骤一")
# 设置文本框的水平和垂直位置
txtBox.HorizontalPosition = 19 / X
txtBox.VerticalPosition = 27 / Y
# 设置文本框填充颜色,去除边框线
txtBox.Format.FillColor = Color.FromRgb(153, 255, 255)
txtBox.Format.NoLine = True
# 将文本框添加到形状组的子对象列表中
shapegroup.ChildObjects.Add(txtBox)
# 创建一个向下的箭头形状,指定其形状类型
arrowLineShape = ShapeObject(doc, ShapeType.DownArrow)
# 设置箭头形状的宽度和高度
arrowLineShape.Width = 16 / X
arrowLineShape.Height = 40 / Y
# 设置箭头形状的水平和垂直位置
arrowLineShape.HorizontalPosition = 73 / X
arrowLineShape.VerticalPosition = 87 / Y
# 设置箭头形状的描边颜色
arrowLineShape.StrokeColor = Color.get_CadetBlue()
# 将箭头形状添加到形状组的子对象列表中
shapegroup.ChildObjects.Add(arrowLineShape)
# (后续代码类似,创建钻石形状文本框、向下的箭头形状以及八边形形状文本框,并进行相应的属性设置与定位)
txtBox = TextBox(doc)
txtBox.SetShapeType(ShapeType.Diamond)
txtBox.Width = 125 / X
txtBox.Height = 54 / Y
paragraph = txtBox.Body.AddParagraph()
paragraph.Format.HorizontalAlignment = HorizontalAlignment.Center
paragraph.AppendText("步骤二")
txtBox.HorizontalPosition = 19 / X
txtBox.VerticalPosition = 131 / Y
txtBox.Format.FillColor=Color.FromRgb(0,102,102)
txtBox.Format.NoLine=True
shapegroup.ChildObjects.Add(txtBox)
arrowLineShape = ShapeObject(doc, ShapeType.DownArrow)
arrowLineShape.Width = 16 / X
arrowLineShape.Height = 40 / Y
arrowLineShape.HorizontalPosition = 73 / X
arrowLineShape.VerticalPosition = 192 / Y
arrowLineShape.StrokeColor = Color.get_CadetBlue()
shapegroup.ChildObjects.Add(arrowLineShape)
txtBox = TextBox(doc)
txtBox.SetShapeType(ShapeType.Octagon)
txtBox.Width = 149 / X
txtBox.Height = 59 / Y
paragraph = txtBox.Body.AddParagraph()
paragraph.Format.HorizontalAlignment = HorizontalAlignment.Center
paragraph.AppendText("步骤三")
txtBox.HorizontalPosition = 7 / X
txtBox.VerticalPosition = 236 / Y
txtBox.Format.FillColor=Color.FromRgb(51,204,204)
txtBox.Format.NoLine=True
shapegroup.ChildObjects.Add(txtBox)
# 定义输出文件名
outputFile = "形状组合.docx"
# 保存文档
doc.SaveToFile(outputFile, FileFormat.Docx2016)
# 关闭文档对象,释放资源
doc.Close()
Python 删除 Word 文档中的形状
Spire.Doc for Python 支持高效地从 Word 文档中移除单一形状和形状组,下面是详细的步骤。
- 创建 Document 类的对象。
- 调用 Document.LoadFromFile() 方法加载一个包含形状的文档。
- 遍历文档的所有章节以及章节内的正文元素,获取段落。
- 判断段落下的子元素是否为形状对象或者形状组对象。
- 调用 Paragraph.ChildObjects.Remove() 方法移除形状对象。
- 使用 Document.SaveToFile() 方法保存文档。
- Python
from spire.doc import *
from spire.doc.common import *
# 创建并加载文档
doc = Document()
doc.LoadFromFile("形状组合.docx")
# 遍历文档的所有章节
for s in range(doc.Sections.Count):
# 获取当前章节
section = doc.Sections[s]
# 遍历章节内所有子对象
for i in range(section.Body.ChildObjects.Count):
# 获取当前子对象
document_object = section.Body.ChildObjects[i]
# 如果当前子对象是段落
if isinstance(document_object, Paragraph):
# 将子对象转换为段落对象
paragraph = document_object
# 初始化内部循环索引
j=0
# 遍历段落内的所有子对象
while j
申请临时 License
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该Email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用JavaScript。获取有效期 30 天的临时许可证。