.NET'te Sunum Slaytlarını Klonla

Giriş

Klonlama, bir şeyin tam bir kopyasını veya replikasını oluşturma işlemidir. Aspose.Slides, herhangi bir slaytı kopyalamanıza (klonlamanıza) ve ardından klonlanan slaytı mevcut sunuma veya başka bir açık sunuma eklemenize de izin verir. Slayt klonlama, geliştiricilerin orijinal slaytı etkilemeden değiştirebilecekleri yeni bir slayt oluşturur. Bir slaytı klonlamanın birkaç yolu vardır:

  • Sunumun sonuna klonla.
  • Sunum içinde başka bir konuma klonla.
  • Başka bir sunumun sonuna klonla.
  • Başka bir sunumda başka bir konuma klonla.
  • Başka bir sunumda belirli bir konuma klonla.

Aspose.Slides for .NET’te, Presentation nesnesi tarafından sunulan slayt koleksiyonu (bir ISlide nesnesi koleksiyonu) yukarıda açıklanan slayt klonlama işlemlerini gerçekleştirmek için AddClone ve InsertClone yöntemlerini sağlar.

Bir Sunumun Sonunda Slaytı Klonla

Bir slaytı klonlamak ve ardından aynı sunum dosyasında mevcut slaytların sonuna eklemek istiyorsanız, aşağıda listelenen adımlara göre AddClone yöntemini kullanın:

  1. Presentation sınıfının bir örneğini oluşturun.
  2. Presentation nesnesi tarafından sağlanan Slides koleksiyonuna referans vererek ISlideCollection sınıfını başlatın.
  3. ISlideCollection nesnesinin sunduğu AddClone yöntemini çağırın ve klonlanacak slaytı AddClone metoduna parametre olarak geçin.
  4. Değiştirilmiş sunum dosyasını yazın.

Aşağıdaki örnekte, sunumun birinci konumunda (sıfır indeksi) bulunan bir slaytı sunumun sonuna klonladık.

// Sunum dosyasını temsil eden Presentation sınıfını örnekle
using (Presentation pres = new Presentation("CloneWithinSamePresentationToEnd.pptx"))
{

    // İstenen slaytı aynı sunumdaki slayt koleksiyonunun sonuna klonla
    ISlideCollection slds = pres.Slides;

    slds.AddClone(pres.Slides[0]);

    // Değiştirilmiş sunumu diske yaz
    pres.Save("Aspose_CloneWithinSamePresentationToEnd_out.pptx", SaveFormat.Pptx);

}

Sunum İçinde Başka Bir Konuma Slaytı Klonla

Bir slaytı klonlamak ve aynı sunum dosyasında farklı bir konuma eklemek istiyorsanız, InsertClone yöntemini kullanın:

  1. Presentation sınıfının bir örneğini oluşturun.
  2. Slides koleksiyonuna referans vererek Presentation nesnesi üzerinden sınıfı başlatın.
  3. ISlideCollection nesnesinin sunduğu InsertClone yöntemini çağırın ve klonlanacak slaytı, yeni konumun indeksiyle birlikte InsertClone metoduna parametre olarak geçin.
  4. Değiştirilmiş sunumu PPTX dosyası olarak yazın.

Aşağıdaki örnekte, sunumun sıfır indeksi (konum 1) konumunda bulunan bir slaytı indeks 1 – konum 2 –‘ye klonladık.

// Sunum dosyasını temsil eden Presentation sınıfını örnekle
using (Presentation pres = new Presentation("CloneWithInSamePresentation.pptx"))
{

    // İstenen slaytı aynı sunumdaki slayt koleksiyonunun sonuna klonla
    ISlideCollection slds = pres.Slides;

    // İstenen slaytı aynı sunumda belirtilen indekse klonla
    slds.InsertClone(2, pres.Slides[1]);

    // Değiştirilmiş sunumu diske kaydet
    pres.Save("Aspose_CloneWithInSamePresentation_out.pptx", SaveFormat.Pptx);

}

Başka Bir Sunumun Sonunda Slaytı Klonla

Bir sunumdan bir slaytı klonlayıp, başka bir sunum dosyasında mevcut slaytların sonuna eklemeniz gerektiğinde:

  1. Slaytın klonlanacağı kaynak sunumu içeren bir Presentation örneği oluşturun.
  2. Slaytın ekleneceği hedef sunumu içeren bir Presentation örneği oluşturun.
  3. Hedef sunumun Presentation nesnesi tarafından sağlanan Slides koleksiyonuna referans vererek ISlideCollection sınıfını başlatın.
  4. ISlideCollection nesnesinin sunduğu AddClone yöntemini çağırın ve kaynak sunumdan alınan slaytı AddClone metoduna parametre olarak geçin.
  5. Değiştirilmiş hedef sunum dosyasını yazın.

Aşağıdaki örnekte, kaynak sunumun birinci indeksindeki bir slaytı hedef sunumun sonuna klonladık.

// Kaynak sunum dosyasını yüklemek için Presentation sınıfını örnekle
using (Presentation srcPres = new Presentation("CloneAtEndOfAnother.pptx"))
{
    // Hedef PPTX (slaytın klonlanacağı yer) için Presentation sınıfını örnekle
    using (Presentation destPres = new Presentation())
    {
        // İstenen slaytı kaynak sunumdan hedef sunumdaki slayt koleksiyonunun sonuna klonla
        ISlideCollection slds = destPres.Slides;

        slds.AddClone(srcPres.Slides[0]);

        // Hedef sunumu diske kaydet
        destPres.Save("Aspose2_out.pptx", SaveFormat.Pptx);
    }
}

Başka Bir Sunumda Başka Bir Konuma Slaytı Klonla

Bir sunumdan bir slaytı klonlayıp başka bir sunum dosyasında belirli bir konuma eklemeniz gerektiğinde:

  1. Slaytın klonlanacağı kaynak sunumu içeren bir Presentation örneği oluşturun.
  2. Slaytın ekleneceği hedef sunumu içeren bir Presentation örneği oluşturun.
  3. Hedef sunumun Presentation nesnesi tarafından sağlanan Slides koleksiyonuna referans vererek ISlideCollection sınıfını başlatın.
  4. ISlideCollection nesnesinin sunduğu InsertClone yöntemini çağırın ve kaynak sunumdan alınan slaytı, istenen konumla birlikte InsertClone metoduna parametre olarak geçin.
  5. Değiştirilmiş hedef sunum dosyasını yazın.

Aşağıdaki örnekte, kaynak sunumun sıfır indeksindeki bir slaytı hedef sunumun indeks 1 (konum 2) konumuna klonladık.

// Kaynak sunum dosyasını yüklemek için Presentation sınıfını örnekle
using (Presentation srcPres = new Presentation("CloneAtEndOfAnother.pptx"))
{
    // Hedef PPTX (slaytın klonlanacağı yer) için Presentation sınıfını örnekle
    using (Presentation destPres = new Presentation())
    {
        ISlideCollection slds = destPres.Slides;

        slds.InsertClone(2, srcPres.Slides[0]);

        // Hedef sunumu diske kaydet
        destPres.Save("Aspose2_out.pptx", SaveFormat.Pptx);
    }
}

Başka Bir Sunumda Belirli Bir Konuma Slaytı Klonla

Bir master slaytı olan bir slaytı bir sunumdan alıp başka bir sunuma eklemeniz gerektiğinde, önce kaynak sunumdan hedef sunuma istenen master slaytı klonlamanız gerekir. Ardından bu master slaytı, master slaytıyla birlikte slaytı klonlamak için kullanmalısınız. AddClone(ISlide, IMasterSlide), kaynak sunumdan değil, hedef sunumdan bir master slayt bekler. Master slaytıyla birlikte slaytı klonlamak için aşağıdaki adımları izleyin:

  1. Slaytı klonlayacağınız kaynak sunumu içeren bir Presentation örneği oluşturun.
  2. Slaytı klonlayacağınız hedef sunumu içeren bir Presentation örneği oluşturun.
  3. Klonlanacak slaytı ve master slaytı erişin.
  4. Hedef sunumun Presentation nesnesi tarafından sağlanan Masters koleksiyonuna referans vererek IMasterSlideCollection sınıfını başlatın.
  5. IMasterSlideCollection nesnesinin sunduğu AddClone yöntemini çağırın ve kaynak PPTX’ten klonlanacak master slaytı parametre olarak geçin.
  6. Hedef sunumun Presentation nesnesi tarafından sağlanan Slides koleksiyonuna referans vererek ISlideCollection sınıfını başlatın.
  7. ISlideCollection nesnesinin sunduğu AddClone yöntemini çağırın ve kaynak sunumdan klonlanacak slaytı ve master slaytı parametre olarak geçin.
  8. Değiştirilmiş hedef sunum dosyasını yazın.

Aşağıdaki örnekte, kaynak sunumun sıfır indeksindeki bir master slaytı içeren bir slaytı, kaynak slayttan alınan master kullanılarak hedef sunumun sonuna klonladık.

// Kaynak sunum dosyasını yüklemek için Presentation sınıfını örnekle

using (Presentation srcPres = new Presentation("CloneToAnotherPresentationWithMaster.pptx"))
{
    // Hedef sunum (slaytın klonlanacağı yer) için Presentation sınıfını örnekle
    using (Presentation destPres = new Presentation())
    {

        // Kaynak sunumdaki slayt koleksiyonundan ISlide'ı ve
        // Master slaytı
        ISlide SourceSlide = srcPres.Slides[0];
        IMasterSlide SourceMaster = SourceSlide.LayoutSlide.MasterSlide;

        // İstenen master slaytı kaynak sunumdan master koleksiyonuna klonla
        // Hedef sunum
        IMasterSlideCollection masters = destPres.Masters;
        IMasterSlide DestMaster = SourceSlide.LayoutSlide.MasterSlide;

        // İstenen master slaytı kaynak sunumdan master koleksiyonuna klonla
        // Hedef sunum
        IMasterSlide iSlide = masters.AddClone(SourceMaster);

        // İstenen master ile kaynak sunumdan istenen slaytı hedef sunumdaki slayt koleksiyonunun sonuna klonla
        // Hedef sunumdaki slayt koleksiyonu
        ISlideCollection slds = destPres.Slides;
        slds.AddClone(SourceSlide, iSlide, true);
      
        // Kaynak sunumdan istenen master slaytı hedef sunumdaki master koleksiyonuna klonla // Hedef sunum
        // Hedef sunumu diske kaydet
        destPres.Save("CloneToAnotherPresentationWithMaster_out.pptx", SaveFormat.Pptx);

    }
}

Belirtilen Bir Bölümün Sonunda Slaytı Klonla

Aspose.Slides for .NET ile bir sunumun bir bölümünden slaytı klonlayıp aynı sunum içinde başka bir bölüme ekleyebilirsiniz. Bu durumda, ISlideCollection arayüzünden AddClone yöntemini kullanmanız gerekir.

Aşağıdaki C# kodu, bir slaytı klonlayıp klonlanan slaytı belirtilen bir bölüme nasıl ekleyeceğinizi gösterir:

using (Presentation pres = new Presentation())
{
    ISlide slide = pres.Slides.AddEmptySlide(pres.Slides[0].LayoutSlide);
    slide.Shapes.AddAutoShape(ShapeType.Ellipse, 150, 150, 100, 100); // klonlamak için
    
    ISlide slide2 = pres.Slides.AddEmptySlide(pres.Slides[0].LayoutSlide);
    ISection section = pres.Sections.AddSection("Section2", slide2);

    pres.Slides.AddClone(slide, section);
    
    pres.Save("pres.pptx", SaveFormat.Pptx);
}

SSS

Konuşmacı notları ve inceleme yorumları da klonlanır mı?

Evet. Not sayfası ve inceleme yorumları klona dahil edilir. İstemiyorsanı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 (örneğin OLE gömülü çalışma kitabı) bağlanmışsa, 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üm içine yerleştirebilirsiniz. Hedef bölüm mevcut değilse, önce oluşturun ve ardından slaytı o bölüme taşıyın.