使用python pptx模块将线插入PowerPoint中

时间:2018-07-12 17:04:15

标签: python python-pptx

以下代码行显示了如何使用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))

1 个答案:

答案 0 :(得分:1)

您可以使用连接器对象与形状对象来绘制线(形状需要x,y,高度和宽度,而powerpoint不能处理负高度)

docs

  

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

     

连接器基于该元素,并具有几种不同的预设几何值(例如线)之一。任意名称的自由形式连接器都不是连接器,而是基于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')