Pudełko tekstowe
W Aspose.Slides pudełko tekstowe jest reprezentowane przez AutoShape. Prawie każdy kształt może zawierać tekst, ale typowe pudełko tekstowe nie ma wypełnienia ani obramowania i wyświetla tylko tekst.
Ten przewodnik wyjaśnia, jak programowo dodawać, uzyskiwać dostęp i usuwać pudełka tekstowe.
Dodaj pudełko tekstowe
Pudełko tekstowe to po prostu AutoShape bez wypełnienia i obramowania oraz z pewnym sformatowanym tekstem. Oto jak je utworzyć:
def add_text_box():
with slides.Presentation() as presentation:
slide = presentation.slides[0]
# Utwórz prostokątny kształt (domyślnie wypełniony obramowaniem i bez tekstu).
text_box = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 50, 75, 150, 100)
# Usuń wypełnienie i obramowanie, aby wyglądało jak typowe pudełko tekstowe.
text_box.fill_format.fill_type = slides.FillType.NO_FILL
text_box.line_format.fill_format.fill_type = slides.FillType.NO_FILL
# Ustaw formatowanie tekstu.
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
# Przypisz rzeczywistą treść tekstu.
text_box.text_frame.text = "Some text..."
presentation.save("text_box.pptx", slides.export.SaveFormat.PPTX)
💡 Uwaga: Każdy
AutoShape, który zawiera niepustyTextFrame, może pełnić funkcję pudełka tekstowego.
Uzyskaj dostęp do pudełek tekstowych według zawartości
Aby znaleźć wszystkie pudełka tekstowe zawierające określone słowo kluczowe (np. “Slide”), przeiteruj kształty i sprawdź ich tekst:
def access_text_box():
with slides.Presentation("text_box.pptx") as presentation:
slide = presentation.slides[0]
for shape in slide.shapes:
# Tylko AutoShape'y mogą zawierać edytowalny tekst.
if isinstance(shape, slides.AutoShape):
if "Slide" in shape.text_frame.text:
# Zrób coś z dopasowanym pudełkiem tekstowym.
pass
Usuń pudełka tekstowe według zawartości
Ten przykład znajduje i usuwa wszystkie pudełka tekstowe na pierwszym slajdzie, które zawierają określone słowo kluczowe:
def remove_text_boxes():
with slides.Presentation("text_box.pptx") as presentation:
slide = presentation.slides[0]
# Znajdź kształty do usunięcia, które są AutoShape'ami zawierającymi słowo "Slide".
shapes_to_remove = [
shape for shape in slide.shapes
if isinstance(shape, slides.AutoShape) and "Slide" in shape.text_frame.text
]
# Usuń każdy pasujący kształt ze slajdu.
for shape in shapes_to_remove:
slide.shapes.remove(shape)
presentation.save("text_boxes_removed.pptx", slides.export.SaveFormat.PPTX)
💡 Wskazówka: Zawsze twórz kopię kolekcji kształtów przed jej modyfikacją podczas iteracji, aby uniknąć błędów modyfikacji kolekcji.