使用连接线 — Aspose.Slides FOSS for Python
连接线是通过线条在视觉上链接两个其他形状的形状。Aspose.Slides FOSS for Python 支持弯曲、直线和曲线连接器。形状上的连接点由整数标识 连接点索引.
连接站点索引
每个形状提供四个标准连接站点::
| 索引 | 侧 |
|---|---|
0 | 顶部 |
1 | 左侧 |
2 | 底部 |
3 | 右侧 |
在两个形状之间添加弯曲连接线
from aspose.slides_foss import ShapeType
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
with slides.Presentation() as prs:
slide = prs.slides[0]
# Create two shapes to connect
box1 = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 150, 150, 60)
box1.add_text_frame("Start")
box2 = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 400, 150, 150, 60)
box2.add_text_frame("End")
# Add a bent connector (position/size are ignored once connected)
conn = slide.shapes.add_connector(ShapeType.BENT_CONNECTOR3, 0, 0, 10, 10)
# Connect right side of box1 → left side of box2
conn.start_shape_connected_to = box1
conn.start_shape_connection_site_index = 3 # right
conn.end_shape_connected_to = box2
conn.end_shape_connection_site_index = 1 # left
prs.save("connector.pptx", SaveFormat.PPTX)连接线形状类型
| ShapeType | 描述 |
|---|---|
ShapeType.BENT_CONNECTOR3 | 两个 90° 弯曲(流程图样式图表中最常见) |
ShapeType.BENT_CONNECTOR2 | 一个 90° 弯曲 |
ShapeType.BENT_CONNECTOR4 | 三个 90° 弯曲 |
ShapeType.STRAIGHT_CONNECTOR1 | 直接直线 |
ShapeType.CURVED_CONNECTOR2 | 单一平滑曲线 |
ShapeType.CURVED_CONNECTOR3 | 双弯曲曲线 |
自上而下的连接
from aspose.slides_foss import ShapeType
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
with slides.Presentation() as prs:
slide = prs.slides[0]
top = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 250, 80, 200, 60)
top.add_text_frame("Decision")
bottom = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 250, 300, 200, 60)
bottom.add_text_frame("Action")
conn = slide.shapes.add_connector(ShapeType.BENT_CONNECTOR3, 0, 0, 10, 10)
conn.start_shape_connected_to = top
conn.start_shape_connection_site_index = 2 # bottom of top box
conn.end_shape_connected_to = bottom
conn.end_shape_connection_site_index = 0 # top of bottom box
prs.save("vertical-connector.pptx", SaveFormat.PPTX)带有多个连接线的流程图
from aspose.slides_foss import ShapeType
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
def add_box(slide, text, x, y, w=160, h=50):
s = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, x, y, w, h)
s.add_text_frame(text)
return s
def connect(slide, s1, site1, s2, site2):
conn = slide.shapes.add_connector(ShapeType.BENT_CONNECTOR3, 0, 0, 10, 10)
conn.start_shape_connected_to = s1
conn.start_shape_connection_site_index = site1
conn.end_shape_connected_to = s2
conn.end_shape_connection_site_index = site2
return conn
with slides.Presentation() as prs:
slide = prs.slides[0]
start = add_box(slide, "Start", 260, 60)
process = add_box(slide, "Process Data", 260, 180)
end = add_box(slide, "End", 260, 300)
connect(slide, start, 2, process, 0) # start → process (bottom to top)
connect(slide, process, 2, end, 0) # process → end (bottom to top)
prs.save("flowchart.pptx", SaveFormat.PPTX)格式化连接线
连接线支持相同的 line_format 属性与其他形状相同::
from aspose.slides_foss import ShapeType, LineDashStyle
from aspose.slides_foss.drawing import Color
import aspose.slides_foss as slides
from aspose.slides_foss.export import SaveFormat
with slides.Presentation() as prs:
slide = prs.slides[0]
box1 = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 50, 150, 150, 60)
box2 = slide.shapes.add_auto_shape(ShapeType.RECTANGLE, 400, 150, 150, 60)
conn = slide.shapes.add_connector(ShapeType.BENT_CONNECTOR3, 0, 0, 10, 10)
conn.start_shape_connected_to = box1
conn.start_shape_connection_site_index = 3
conn.end_shape_connected_to = box2
conn.end_shape_connection_site_index = 1
# Style the connector line
conn.line_format.width = 2.5
conn.line_format.dash_style = LineDashStyle.DASH
conn.line_format.fill_format.solid_fill_color.color = Color.dark_blue
prs.save("styled-connector.pptx", SaveFormat.PPTX)