Caixa de Texto
No Aspose.Slides, uma caixa de texto é representada por um AutoShape. Quase qualquer forma pode conter texto, mas uma caixa de texto típica não tem preenchimento nem borda e exibe apenas texto.
Este guia explica como adicionar, acessar e remover caixas de texto programaticamente.
Adicionar uma Caixa de Texto
Uma caixa de texto é simplesmente um AutoShape sem preenchimento nem borda e com algum texto formatado. Veja como criar uma:
def add_text_box():
with slides.Presentation() as presentation:
slide = presentation.slides[0]
# Crie uma forma retangular (por padrão preenchida com borda e sem texto).
text_box = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 50, 75, 150, 100)
# Remova o preenchimento e a borda para que pareça uma caixa de texto típica.
text_box.fill_format.fill_type = slides.FillType.NO_FILL
text_box.line_format.fill_format.fill_type = slides.FillType.NO_FILL
# Defina a formatação do texto.
paragraph_format = text_box.text_frame.paragraphs[0].paragraph_format
paragraph_format.default_portion_format.fill_format.fill_type = slides.FillType.SOLID
paragraph_format.default_portion_format.fill_format.solid_fill_color.color = drawing.Color.black
# Atribua o conteúdo real do texto.
text_box.text_frame.text = "Some text..."
presentation.save("text_box.pptx", slides.export.SaveFormat.PPTX)
💡 Observação: Qualquer
AutoShapeque contenha umTextFramenão vazio pode funcionar como uma caixa de texto.
Acessar Caixas de Texto por Conteúdo
Para encontrar todas as caixas de texto que contenham uma palavra-chave específica (por exemplo “Slide”), percorra as formas e verifique seu texto:
def access_text_box():
with slides.Presentation("text_box.pptx") as presentation:
slide = presentation.slides[0]
for shape in slide.shapes:
# Apenas AutoShapes podem conter texto editável.
if isinstance(shape, slides.AutoShape):
if "Slide" in shape.text_frame.text:
# Faça algo com a caixa de texto correspondente.
pass
Remover Caixas de Texto por Conteúdo
Este exemplo encontra e exclui todas as caixas de texto no primeiro slide que contenham uma palavra-chave específica:
def remove_text_boxes():
with slides.Presentation("text_box.pptx") as presentation:
slide = presentation.slides[0]
# Encontre as formas a remover que são AutoShapes contendo a palavra "Slide".
shapes_to_remove = [
shape for shape in slide.shapes
if isinstance(shape, slides.AutoShape) and "Slide" in shape.text_frame.text
]
# Remova cada forma correspondente do slide.
for shape in shapes_to_remove:
slide.shapes.remove(shape)
presentation.save("text_boxes_removed.pptx", slides.export.SaveFormat.PPTX)
💡 Dica: Sempre crie uma cópia da coleção de formas antes de modificá-la durante a iteração para evitar erros de modificação da coleção.