使用python pptx模块在PowerPoint中插入一行



以下几行代码展示了如何使用python在PowerPoint幻灯片中划线。但是,下面列出的四个以英寸为单位的参数只取正值,因此不能向后绘制。有其他方法可以在PowerPoint幻灯片中划线吗?

from pptx.enum.shapes import MSO_SHAPE
line1 = slide.shapes.add_shape(MSO_SHAPE.LINE_INVERSE, Inches(6), Inches(6), Inches(1), Inches(2))

您可以使用连接器对象与形状对象绘制线,(形状需要x、y、高度和宽度,powerpoint无法处理负高度(

从文档

线条是自动形状的一个子类别,在某些属性和行为上有所不同。特别是,除了范围(左侧、顶部、宽度、高度(之外,它们还有一个起点和终点。

连接器基于图元,并具有少数不同的预设几何图形值之一,例如线。自由形式连接件(尽管有名称(不是连接件,而是基于p:sp元素的自定义几何图形。

连接器可以"连接"到自动造型,以便在移动自动造型时,连接的端点保持连接。这依赖于汽车造型上的"连接点"概念。这些连接点是自动造型的预设功能,类似于调整点的预定义方式。连接点由索引标识。

使用下面的代码可以绘制一条从x=4英寸到x=2英寸的直线。

from pptx.enum.shapes import MSO_CONNECTOR
from pptx import Presentation 

# Make sure you have a presentation called test1.pptx in your working directory

prs = Presentation(pptx='test1.pptx')
slide = prs.slides.add_slide(prs.slide_layouts[1])
#shapes.add_connector(MSO_CONNECTOR.STRAIGHT, start_x, start_y, end_x, end_y

line1=slide.shapes.add_connector(MSO_CONNECTOR.STRAIGHT, Inches(4), Inches(2), Inches(1), Inches(2))
prs.save('test2.pptx')

最新更新