Python'da PowerPoint Slaytlarını Klonla
Giriş
Klonlama, bir şeyin tam kopyasını veya replikasını oluşturma sürecidir. Aspose.Slides ayrıca herhangi bir slaytı kopyalamanıza (klonlamanıza) ve ardından klonlanan slaytı mevcut sunuma veya başka bir açık sunuma eklemenize izin verir. Slayt klonlama, geliştiricilerin orijinal slaytı etkilemeden değiştirebileceği yeni bir slayt oluşturur. Bir slaytı klonlamanın birkaç yolu vardır:
- Sunumun sonunda klonla.
- Sunum içinde başka bir konumda klonla.
- Başka bir sunumun sonunda klonla.
- Başka bir sunumda başka bir konumda klonla.
- Başka bir sunumda belirli bir konumda klonla.
Aspose.Slides for Python via .NET’de, slide collection nesnesi tarafından Presentation nesnesi sunulan add_clone ve insert_clone yöntemlerini bu tür slayt klonlamalarını gerçekleştirmek için sağlar.
Kurulum
pip install aspose.slides
Aynı Sunumda Sonuna Kopyala
Eğer aynı sunum içinde bir slaytı klonlayıp mevcut slaytların sonuna eklemek istiyorsanız, add_clone yöntemini kullanın. Aşağıdaki adımları izleyin:
- Presentation sınıfının bir örneğini oluşturun.
- Presentation nesnesinden slide collection’ı alın.
- SlideCollection üzerinde
add_cloneyöntemini çağırın ve klonlanacak slaytı parametre olarak geçin. - Değiştirilen sunumu kaydedin.
Aşağıdaki örnekte, ilk slayt (indeks 0) klonlanır ve sunumun sonuna eklenir.
import aspose.slides as slides
# Sunum dosyasını temsil etmek için Presentation sınıfının bir örneğini oluşturun.
with slides.Presentation("CloneWithinSamePresentationToEnd.pptx") as presentation:
# Aynı sunumdaki slayt koleksiyonunun sonuna istenen slaytı klonlayın.
presentation.slides.add_clone(presentation.slides[0])
# Değiştirilmiş sunumu diske kaydedin.
presentation.save("Aspose_CloneWithinSamePresentationToEnd_out.pptx", slides.export.SaveFormat.PPTX)
Aynı Sunumda Belirli Bir Konuma Kopyala
Eğer aynı sunum içinde bir slaytı klonlayıp farklı bir konuma yerleştirmek istiyorsanız, insert_clone yöntemini kullanın:
- Presentation sınıfının bir örneğini oluşturun.
- Presentation nesnesinden slide collection’ı alın.
- SlideCollection üzerinde
insert_cloneyöntemini çağırın, klonlanacak slaytı ve yeni konumu belirten hedef indeksi parametre olarak geçin. - Değiştirilen sunumu kaydedin.
Aşağıdaki örnekte, indeks 1’deki slayt (konum 2) aynı sunum içinde indeks 2’ye (konum 3) klonlanır.
import aspose.slides as slides
# Sunum dosyasını temsil eden Presentation sınıfını örnekleyin.
with slides.Presentation("CloneWithInSamePresentation.pptx") as presentation:
# Aynı sunum içinde istenen slaytı belirtilen konuma (indeks) klonlayın.
presentation.slides.insert_clone(2, presentation.slides[1])
# Değiştirilmiş sunumu diske kaydedin.
presentation.save("Aspose_CloneWithInSamePresentation_out.pptx", slides.export.SaveFormat.PPTX)
Başka Bir Sunumun Sonuna Kopyala
Bir sunumdan bir slaytı klonlayıp başka bir sunumun sonuna eklemeniz gerektiğinde:
- Kaynak sunum (klonlanacak slaytı içeren) için bir Presentation sınıfının örneğini oluşturun.
- Hedef sunum (slaytın ekleneceği) için bir Presentation sınıfının örneğini oluşturun.
- Hedef sunumdan slide collection’ı alın.
- Hedef SlideCollection üzerinde
add_clonemetodunu çağırın ve kaynak sunumdaki slaytı parametre olarak geçin. - Değiştirilen hedef sunumu kaydedin.
Aşağıdaki örnekte, kaynak sunumdaki indeks 0’deki slayt, hedef sunumun sonuna klonlanır.
import aspose.slides as slides
# Kaynak sunum dosyasını temsil etmek için Presentation sınıfının bir örneğini oluşturun.
with slides.Presentation("CloneAtEndOfAnother.pptx") as source_presentation:
# Kaydırılacak slaytın ekleneceği hedef PPTX için Presentation sınıfının bir örneğini oluşturun.
with slides.Presentation() as target_presentation:
# Kaynak sunumdan istenen slaytı hedef sunumdaki slayt koleksiyonunun sonuna klonlayın.
target_presentation.slides.add_clone(source_presentation.slides[0])
# Hedef sunumu diske kaydedin.
target_presentation.save("Aspose2_out.pptx", slides.export.SaveFormat.PPTX)
Başka Bir Sunumda Belirli Bir Konuma Kopyala
Bir sunumdan bir slaytı klonlayıp başka bir sunuma belirli bir konumda eklemeniz gerektiğinde:
- Kaynak sunum (klonlanacak slaytı içeren) için bir Presentation sınıfının örneğini oluşturun.
- Hedef sunum (slaytın ekleneceği) için bir Presentation sınıfının örneğini oluşturun.
- Hedef sunumdan slide collection’ı alın.
- Hedef SlideCollection üzerinde
insert_clonemetodunu çağırın, kaynak sunumdaki slaytı ve istenen hedef indeksi parametre olarak geçin. - Değiştirilen hedef sunumu kaydedin.
Aşağıdaki örnekte, kaynak sunumdaki indeks 0’deki slayt, hedef sunumda indeks 2’ye (konum 3) klonlanır.
import aspose.slides as slides
# Kaynak sunum dosyasını temsil etmek için Presentation sınıfının bir örneğini oluşturun.
with slides.Presentation("CloneAtEndOfAnother.pptx") as source_presentation:
# Slaytın klonlanacağı hedef PPTX için Presentation sınıfının bir örneğini oluşturun.
with slides.Presentation("Aspose2_out.pptx") as target_presentation:
# İlk slaytın bir klonunu kaynak sunumdan hedef sunumda indeks 2'ye ekleyin.
target_presentation.slides.insert_clone(2, source_presentation.slides[0])
# Hedef sunumu diske kaydedin.
target_presentation.save("Aspose3_out.pptx", slides.export.SaveFormat.PPTX)
Başka Bir Sunuma Ana Slaytıyla Bir Slaytı Kopyala
Eğer bir sunumdan ana slaytıyla birlikte bir slaytı klonlayıp diğerinde kullanmanız gerekiyorsa, önce gerekli ana slaytı kaynak sunumdan hedef sunuma klonlayın. Ardından slaytı klonlarken bu hedef ana slaytı kullanın. add_clone(Slide, MasterSlide) yöntemi kaynak değil, hedef sunumdan bir ana slayt bekler.
- Kaynak sunum için bir Presentation sınıfının örneğini oluşturun.
- Hedef sunum için bir Presentation sınıfının örneğini oluşturun.
- Klonlanacak kaynak slaytı ve onun ana slaytını alın.
- Hedef sunumun master collection’ından MasterSlideCollection alın.
- Hedef MasterSlideCollection üzerinde
add_clonemetodunu çağırın, kaynak ana slaytı geçirerek hedefe klonlayın. - Hedef sunumun slide collection’ından SlideCollection alın.
- Hedef SlideCollection üzerinde
add_clonemetodunu çağırın, kaynak slaytı ve klonlanmış hedef ana slaytı parametre olarak geçin. - Değiştirilen hedef sunumu kaydedin.
Aşağıdaki örnekte, kaynak sunumdaki indeks 0’deki slayt, kaynakta klonlanan ana slaytı kullanarak hedef sunumun sonuna klonlanır.
import aspose.slides as slides
# Kaynak sunum dosyasını temsil etmek için Presentation sınıfının bir örneğini oluşturun.
with slides.Presentation("CloneToAnotherPresentationWithMaster.pptx") as source_presentation:
# Slaytın klonlanacağı hedef sunum için Presentation sınıfının bir örneğini oluşturun.
with slides.Presentation() as target_presentation:
# Kaynak sunumdan ilk slaytı alın.
source_slide = source_presentation.slides[0]
# İlk slayt tarafından kullanılan ana slaytı alın.
source_master = source_slide.layout_slide.master_slide
# Ana slaytı hedef sunumun master koleksiyonuna klonlayın.
cloned_master = target_presentation.masters.add_clone(source_master)
# Kaynak sunumdaki slaytı, klonlanmış masterı kullanarak hedef sunumun sonuna klonlayın.
target_presentation.slides.add_clone(source_slide, cloned_master, True)
# Hedef sunumu diske kaydedin.
target_presentation.save("CloneToAnotherPresentationWithMaster_out.pptx", slides.export.SaveFormat.PPTX)
Belirli Bir Bölümde Sonuna Kopyala
Aspose.Slides for Python via .NET ile bir sunumun bir bölümünden bir slaytı klonlayıp aynı sunum içinde başka bir bölüme ekleyebilirsiniz. Bunu yapmak için SlideCollection sınıfının add_clone(Slide, Section) yöntemini kullanın.
Aşağıdaki Python örneği, bir slaytı nasıl klonlayıp belirli bir bölüme ekleyeceğinizi gösterir:
import aspose.slides as slides
# Yeni boş bir sunum oluştur.
with slides.Presentation() as presentation:
# İlk slaytın düzenine dayalı boş bir slayt ekleyin.
slide = presentation.slides.add_empty_slide(presentation.slides[0].layout_slide)
# Yeni slayta bir elips şekli ekle; bu slayt daha sonra klonlanacak.
slide.shapes.add_auto_shape(slides.ShapeType.ELLIPSE, 150, 150, 100, 100)
# İlk slaytın düzenine dayalı bir başka boş slayt ekleyin.
slide2 = presentation.slides.add_empty_slide(presentation.slides[0].layout_slide)
# slide2'de başlayan "Section2" adlı bir bölüm oluştur.
section = presentation.sections.add_section("Section2", slide2)
# Daha önce oluşturulan slaytı "Section2" bölümüne klonla.
presentation.slides.add_clone(slide, section)
# Sunumu PPTX dosyası olarak kaydet.
presentation.save("presentation.pptx", slides.export.SaveFormat.PPTX)
Uyumlu Slayt Boyutunu Sağlayın
Slaytları başka bir sunuma klonlarken, hedef sunumun slayt boyutunun kaynakla aynı olduğundan emin olun. Slayt boyutları farklıysa, Aspose.Slides klonlanan şekilleri otomatik olarak yeniden ölçeklendirmez—orijinal koordinat ve boyutları korunur, bu da içeriğin kaymış görünmesine veya slayt sınırlarının dışına taşmasına neden olabilir.
Master ve slaytı klonlamadan önce, hedef sunumun slayt boyutunu kaynağa eşitleyebilirsiniz:
source_size = source_presentation.slide_size.size
target_presentation.slide_size.set_size(
source_size.width, source_size.height, slides.SlideSizeScaleType.DO_NOT_SCALE)
Bunu master ve slaytı klonlamadan önce yapın.
SSS
Konuşmacı notları ve gözden geçirme yorumları klonlanır mı?
Evet. Not sayfası ve inceleme yorumları klona dahil edilir. Eğer istemiyorsanız, eklemeden sonra kaldırın.
Grafikler ve veri kaynakları nasıl ele alınır?
Grafik nesnesi, biçimlendirme ve gömülü veri kopyalanır. Grafik harici bir kaynağa (ör. OLE gömülü bir çalışma kitabı) bağlıysa, bu bağlantı bir OLE nesnesi olarak korunur. Dosyalar arasında taşındıktan sonra veri kullanılabilirliğini ve yenileme davranışını doğrulayın.
Klonun ekleme konumunu ve bölümlerini kontrol edebilir miyim?
Evet. Klonu belirli bir slayt indeksine ekleyebilir ve seçtiğiniz bir bölüme yerleştirebilirsiniz. Hedef bölüm yoksa, önce oluşturun ve ardından slaytı ona taşıyın.