上面代码中获取的文本框是本来就已经存在页面上的,如果你想新建一个文本框,可以调用SlideShapes对象的add_textbox()方法。该方法的参数与add_shape()方法的参数差不多,只不过不用指定形状id了,比如说这里创建一个距离页面左边和上边都是3厘米,宽度是15厘米,高度是5厘米的文本框,代码如下:
from pptx import Presentation
from pptx.util import Cm
ppt = Presentation()
slide = ppt.slides.add_slide(ppt.slide_layouts[0])
left = top = Cm(3)
width = Cm(15)
height = Cm(5)
text_box = slide.shapes.add_textbox(left,top,width,height)
print(type(text_box),text_box.shape_type)
# 输出:<class 'pptx.shapes.autoshape.Shape'>TEXT_BOX (17)
text_frame = text_box.text_frame
print(type(text_frame))
# 输出:<class 'pptx.text.text.TextFrame'>
ppt.save("./ppt_ files/test.pptx")
调用add_textbox()方法得到是一个文本框类型的Shape,我们只要再访问一下它的text_frame属性就能获取到TextFrame对象了。