Python ile Sunumlarda Metin Kutularını Yönetme
Giriş
Slaytlardaki metinler genellikle metin kutuları veya şekiller içinde bulunur. Bu nedenle, bir slayta metin eklemek için bir metin kutusu eklemeniz ve ardından metni metin kutusuna koymanız gerekir. Aspose.Slides for Python, içinde metin bulunan bir şekil eklemenizi sağlayan AutoShape sınıfını sunar.
Info
Aspose.Slides ayrıca Shape sınıfını sağlar. Ancak, tüm şekiller metin tutamaz.Note
Bu nedenle, metin eklemek istediğiniz bir şekille çalışırken, şeklin AutoShape sınıfı aracılığıyla dönüştürüldüğünden emin olmak isteyebilirsiniz. Ancak o zaman [AutoShape] altında bulunan bir özellik olan TextFrame ile çalışabilirsiniz. Bu sayfadaki Metni Güncelle bölümüne bakın.Slaytlara Metin Kutuları Oluşturma
Bir slayta metin kutusu oluşturmak için:
- Bir Presentation sınıfının örneğini oluşturun.
- İlk slayta bir referans alın.
- İstediğiniz konumda
ShapeType.RECTANGLEile bir AutoShape ekleyin. - Şeklin TextFrame içinde metni ayarlayın.
- Sunumu PPTX dosyası olarak kaydedin.
Aşağıdaki Python örneği bu adımları uygular:
import aspose.slides as slides
# Presentation sınıfının bir örneğini oluştur.
with slides.Presentation() as presentation:
# Sunumdaki ilk slaytı al.
slide = presentation.slides[0]
# RECTANGLE türünde bir AutoShape ekle.
shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 150, 75, 150, 50)
shape.text_frame.text = "Aspose TextBox"
# Sunumu diske kaydet.
presentation.save("TextBox.pptx", slides.export.SaveFormat.PPTX)
Bir Şeklin Metin Kutusu Olup Olmadığını Kontrol Etme
Aspose.Slides, bir şeklin metin kutusu olup olmadığını belirlemenizi sağlayan AutoShape sınıfında is_text_box özelliğini sunar.

Bu Python örneği, bir şeklin metin kutusu olarak oluşturulup oluşturulmadığını nasıl kontrol edeceğinizi gösterir:
import aspose.slides as slides
with slides.Presentation("Sample.pptx") as presentation:
for slide in presentation.slides:
for shape in slide.shapes:
if isinstance(shape, slides.AutoShape):
print("shape is a text box" if shape.is_text_box else "shape is not a text box")
Eğer ShapeCollection sınıfını kullanarak bir AutoShape eklerseniz, şeklin is_text_box özelliği False döner. Ancak, metin ekledikten sonra—add_text_frame yöntemiyle ya da text özelliğini ayarlayarak—is_text_box True döner.
import aspose.slides as slides
with slides.Presentation() as presentation:
slide = presentation.slides[0]
shape1 = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 10, 10, 100, 40)
# shape1.is_text_box yanlış
shape1.add_text_frame("shape 1")
# shape1.is_text_box doğru
shape2 = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 10, 110, 100, 40)
# shape2.is_text_box yanlış
shape2.text_frame.text = "shape 2"
# shape2.is_text_box doğru
shape3 = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 10, 210, 100, 40)
# shape3.is_text_box yanlış
shape3.add_text_frame("")
# shape3.is_text_box yanlış
shape4 = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 10, 310, 100, 40)
# shape4.is_text_box yanlış
shape4.text_frame.text = ""
# shape4.is_text_box yanlış
Metin Kutularına Sütun Ekleme
Aspose.Slides, metin kutularına sütun eklemek için TextFrameFormat sınıfında column_count ve column_spacing özelliklerini sunar. Sütun sayısını belirtebilir ve sütunlar arasındaki boşluğu (puan olarak) ayarlayabilirsiniz.
Aşağıdaki Python kodu bu işlemi gösterir:
import aspose.slides as slides
with slides.Presentation() as presentation:
# Sunumdaki ilk slaytı al.
slide = presentation.slides[0]
# RECTANGLE tipinde bir AutoShape ekle.
shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 100, 100, 300, 300)
# Dikdörtgen'e bir TextFrame ekle.
shape.add_text_frame("All of these columns are confined to a single text container—" +
"you can add or delete text, and any new or remaining text automatically reflows " +
"within the container. You cannot have text flow from one container to another, " +
"though—PowerPoint’s column options for text are limited!")
# TextFrame'in metin biçimini al.
format = shape.text_frame.text_frame_format
# TextFrame'deki sütun sayısını belirt.
format.column_count = 3
# Sütunlar arasındaki boşluğu belirt.
format.column_spacing = 10
# Sunumu kaydet.
presentation.save("ColumnCount.pptx", slides.export.SaveFormat.PPTX)
Metni Güncelleme
Aspose.Slides, tek bir metin kutusundaki metni ya da tüm sunumdaki metni güncellemenizi sağlar.
Aşağıdaki Python örneği, bir sunumdaki tüm metni nasıl güncelleyeceğinizi gösterir:
import aspose.slides as slides
with slides.Presentation("Sample.pptx") as presentation:
for slide in presentation.slides:
for shape in slide.shapes:
if type(shape) is slides.AutoShape:
for paragraph in shape.text_frame.paragraphs:
for portion in paragraph.portions:
portion.text = portion.text.replace("years", "months")
portion.portion_format.font_bold = 1
# Değiştirilmiş sunumu kaydet.
presentation.save("TextChanged.pptx", slides.export.SaveFormat.PPTX)
Köprü İçeren Metin Kutuları Ekleme
Bir metin kutusuna bağlantı ekleyebilirsiniz. Metin kutusuna tıklandığında bağlantı açılır.
Köprü içeren bir metin kutusu eklemek için aşağıdaki adımları izleyin:
- Bir Presentation sınıfının örneğini oluşturun.
- İlk slayta bir referans alın.
- İstediğiniz konumda
ShapeType.RECTANGLEile bir AutoShape ekleyin. - Şeklin TextFrame içinde metni ayarlayın.
- HyperlinkManager sınıfına bir referans alın.
hyperlink_managerözelliğini kullanarak harici bir tıklama köprüsü ayarlayın.- Sunumu PPTX dosyası olarak kaydedin.
Bu Python örneği, bir slayta köprü içeren bir metin kutusu nasıl ekleneceğini gösterir:
import aspose.slides as slides
# Presentation sınıfının bir örneğini oluştur.
with slides.Presentation() as presentation:
# Sunumdaki ilk slaytı al.
slide = presentation.slides[0]
# RECTANGLE tipinde bir AutoShape ekle.
shape = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 150, 150, 150, 50)
text_portion = shape.text_frame.paragraphs[0].portions[0]
# Çerçeveye metin ekle.
text_portion.text = "Aspose.Slides"
# Parça metnine bir köprü ayarla.
hyperlink_manager = text_portion.portion_format.hyperlink_manager
hyperlink_manager.set_external_hyperlink_click("http://www.aspose.com")
# Sunumu PPTX dosyası olarak kaydet.
presentation.save("Hyperlink.pptx", slides.export.SaveFormat.PPTX)
SSS
Bir ana slaytla çalışırken metin kutusu ile metin yer tutucu arasındaki fark nedir?
placeholder master stilini/konumunu devralır ve layouts üzerinde geçersiz kılınabilir, oysa normal bir metin kutusu belirli bir slaytta bağımsız bir nesnedir ve düzenleri değiştirdiğinizde değişmez.
Sunum boyunca, grafikler, tablolar ve SmartArt içindeki metinlere dokunmadan toplu metin değiştirme nasıl yapılır?
İterasyonunuzu yalnızca metin çerçevelerine sahip otomatik şekillere sınırlayın ve gömülü nesneleri (charts, tables, SmartArt) ayrı ayrı koleksiyonlarını gezerek ya da bu nesne türlerini atlayarak dışarıda bırakın.