Mengklon Slide Presentasi di .NET
Pendahuluan
Kloning adalah proses membuat salinan atau tiruan yang persis dari sesuatu. Aspose.Slides juga memungkinkan Anda menyalin (mengkloning) slide apa pun dan kemudian menyisipkan slide yang diklon ke dalam presentasi saat ini atau presentasi terbuka lainnya. Kloning slide membuat slide baru yang dapat dimodifikasi oleh pengembang tanpa memengaruhi slide asli. Ada beberapa cara untuk mengkloning slide:
- Kloning di akhir presentasi.
- Kloning pada posisi lain dalam presentasi.
- Kloning di akhir presentasi lain.
- Kloning pada posisi lain di presentasi lain.
- Kloning bersama slide masternya ke dalam presentasi lain.
Di Aspose.Slides untuk .NET, koleksi slide (sebuah koleksi objek ISlide ) yang tersedia melalui objek Presentation menyediakan metode AddClone dan InsertClone untuk melakukan operasi kloning slide yang dijelaskan di atas.
Kloning Slide di Akhir Presentasi
Jika Anda ingin mengkloning slide dan kemudian menggunakannya dalam file presentasi yang sama di akhir slide yang ada, gunakan metode AddClone sesuai langkah-langkah di bawah ini:
- Buat sebuah instance dari kelas Presentation .
- Instansiasikan kelas ISlideCollection dengan merujuk ke koleksi Slides yang tersedia melalui objek Presentation .
- Panggil metode AddClone yang tersedia pada objek ISlideCollection dan berikan slide yang akan diklon sebagai parameter ke metode AddClone .
- Tuliskan file presentasi yang telah dimodifikasi.
Pada contoh di bawah ini, kami telah mengkloning slide (yang berada pada posisi pertama – indeks nol – dalam presentasi) ke akhir presentasi.
using Aspose.Slides;
using Aspose.Slides.Export;
// Membuat instance kelas Presentation yang mewakili file presentasi
using (Presentation pres = new Presentation("CloneWithinSamePresentationToEnd.pptx"))
{
// Klon slide yang diinginkan ke akhir koleksi slide dalam presentasi yang sama
ISlideCollection slds = pres.Slides;
slds.AddClone(pres.Slides[0]);
// Menulis presentasi yang telah dimodifikasi ke disk
pres.Save("Aspose_CloneWithinSamePresentationToEnd_out.pptx", SaveFormat.Pptx);
}
Kloning Slide ke Posisi Lain dalam Presentasi
Jika Anda ingin mengkloning slide dan kemudian menggunakannya dalam file presentasi yang sama tetapi pada posisi yang berbeda, gunakan metode InsertClone :
- Buat sebuah instance dari kelas Presentation .
- Instansiasikan kelas dengan merujuk ke koleksi Slides yang tersedia melalui objek Presentation .
- Panggil metode InsertClone yang tersedia pada objek ISlideCollection dan berikan slide yang akan diklon bersama dengan indeks posisi baru sebagai parameter ke metode InsertClone .
- Tuliskan presentasi yang telah dimodifikasi sebagai file PPTX.
Pada contoh di bawah ini, kami telah mengkloning slide (yang berada pada indeks 1 – posisi 2 – dalam presentasi) ke indeks 2 – posisi 3 – dalam presentasi.
using Aspose.Slides;
using Aspose.Slides.Export;
// Membuat instance kelas Presentation yang mewakili file presentasi
using (Presentation pres = new Presentation("CloneWithInSamePresentation.pptx"))
{
// Mengklon slide yang diinginkan ke akhir koleksi slide dalam presentasi yang sama
ISlideCollection slds = pres.Slides;
// Mengklon slide yang diinginkan ke indeks yang ditentukan dalam presentasi yang sama
slds.InsertClone(2, pres.Slides[1]);
// Menulis presentasi yang telah dimodifikasi ke disk
pres.Save("Aspose_CloneWithInSamePresentation_out.pptx", SaveFormat.Pptx);
}
Kloning Slide di Akhir Presentasi Lain
Jika Anda perlu mengkloning slide dari satu presentasi dan menggunakannya dalam file presentasi lain, di akhir slide yang ada:
- Buat sebuah instance dari kelas Presentation yang berisi presentasi tempat slide akan diklon .
- Buat sebuah instance dari kelas Presentation yang berisi presentasi tujuan tempat slide akan ditambahkan .
- Instansiasikan kelas ISlideCollection dengan merujuk ke koleksi Slides yang tersedia melalui objek Presentation pada presentasi tujuan .
- Panggil metode AddClone yang tersedia pada objek ISlideCollection dan berikan slide dari presentasi sumber sebagai parameter ke metode AddClone .
- Tuliskan file presentasi tujuan yang telah dimodifikasi.
Pada contoh di bawah ini, kami telah mengkloning slide (dari indeks pertama presentasi sumber) ke akhir presentasi tujuan.
using Aspose.Slides;
using Aspose.Slides.Export;
// Membuat instance kelas Presentation untuk memuat file presentasi sumber
using (Presentation srcPres = new Presentation("CloneAtEndOfAnother.pptx"))
{
// Membuat instance kelas Presentation untuk PPTX tujuan (di mana slide akan diklon)
using (Presentation destPres = new Presentation())
{
// Mengklon slide yang diinginkan dari presentasi sumber ke akhir koleksi slide dalam presentasi tujuan
ISlideCollection slds = destPres.Slides;
slds.AddClone(srcPres.Slides[0]);
// Menulis presentasi tujuan ke disk
destPres.Save("Aspose2_out.pptx", SaveFormat.Pptx);
}
}
Kloning Slide ke Posisi Lain dalam Presentasi Lain
Jika Anda perlu mengkloning slide dari satu presentasi dan menggunakannya dalam file presentasi lain, pada posisi tertentu:
- Buat sebuah instance dari kelas Presentation yang berisi presentasi sumber tempat slide akan diklon .
- Buat sebuah instance dari kelas Presentation yang berisi presentasi tempat slide akan ditambahkan .
- Instansiasikan kelas ISlideCollection dengan merujuk ke koleksi Slides yang tersedia melalui objek Presentation pada presentasi tujuan .
- Panggil metode InsertClone yang tersedia pada objek ISlideCollection dan berikan slide dari presentasi sumber bersama dengan posisi yang diinginkan sebagai parameter ke metode InsertClone .
- Tuliskan file presentasi tujuan yang telah dimodifikasi.
Pada contoh di bawah ini, kami telah mengkloning slide (dari indeks nol presentasi sumber) ke indeks 1 (posisi 2) pada presentasi tujuan.
using Aspose.Slides;
using Aspose.Slides.Export;
// Membuat instance kelas Presentation untuk memuat file presentasi sumber
using (Presentation srcPres = new Presentation("CloneAtEndOfAnother.pptx"))
{
// Membuat instance kelas Presentation untuk PPTX tujuan (di mana slide akan diklon)
using (Presentation destPres = new Presentation())
{
ISlideCollection slds = destPres.Slides;
slds.InsertClone(2, srcPres.Slides[0]);
// Menulis presentasi tujuan ke disk
destPres.Save("Aspose2_out.pptx", SaveFormat.Pptx);
}
}
Kloning Slide dengan Slide Master ke Presentasi Lain
Jika Anda perlu mengkloning slide beserta slide masternya dari satu presentasi dan menggunakannya dalam presentasi lain, Anda harus terlebih dahulu mengkloning slide master yang diinginkan dari presentasi sumber ke presentasi tujuan. Kemudian Anda harus menggunakan slide master tersebut untuk mengkloning slide dengan master. Metode AddClone(ISlide, IMasterSlide) mengharapkan slide master dari presentasi tujuan, bukan dari presentasi sumber. Untuk mengkloning slide dengan master, ikuti langkah-langkah berikut:
- Buat sebuah instance dari kelas Presentation yang berisi presentasi sumber tempat slide akan diklon .
- Buat sebuah instance dari kelas Presentation yang berisi presentasi tujuan tempat slide akan diklon .
- Akses slide yang akan diklon bersama dengan slide masternya .
- Instansiasikan kelas IMasterSlideCollection dengan merujuk ke koleksi Masters yang tersedia melalui objek Presentation pada presentasi tujuan .
- Panggil metode AddClone yang tersedia pada objek IMasterSlideCollection dan berikan master dari PPTX sumber yang akan diklon sebagai parameter ke metode AddClone .
- Instansiasikan kelas ISlideCollection dengan mengatur referensi ke koleksi Slides yang tersedia melalui objek Presentation pada presentasi tujuan .
- Panggil metode AddClone yang tersedia pada objek ISlideCollection dan berikan slide dari presentasi sumber yang akan diklon serta slide master sebagai parameter ke metode AddClone .
- Tuliskan file presentasi tujuan yang telah dimodifikasi.
Pada contoh di bawah ini, kami telah mengkloning slide dengan master (yang berada pada indeks nol presentasi sumber) ke akhir presentasi tujuan menggunakan master dari slide sumber.
using Aspose.Slides;
using Aspose.Slides.Export;
// Membuat instance kelas Presentation untuk memuat file presentasi sumber
using (Presentation srcPres = new Presentation("CloneToAnotherPresentationWithMaster.pptx"))
{
// Membuat instance kelas Presentation untuk presentasi tujuan (di mana slide akan diklon)
using (Presentation destPres = new Presentation())
{
// Membuat instance ISlide dari koleksi slide dalam presentasi sumber bersama dengan
// Slide master
ISlide SourceSlide = srcPres.Slides[0];
IMasterSlide SourceMaster = SourceSlide.LayoutSlide.MasterSlide;
// Mengklon slide master yang diinginkan dari presentasi sumber ke koleksi master di
// presentasi tujuan
IMasterSlideCollection masters = destPres.Masters;
IMasterSlide DestMaster = SourceSlide.LayoutSlide.MasterSlide;
// Mengklon slide master yang diinginkan dari presentasi sumber ke koleksi master di
// presentasi tujuan
IMasterSlide iSlide = masters.AddClone(SourceMaster);
// Mengklon slide yang diinginkan dari presentasi sumber dengan master yang diinginkan ke akhir
// koleksi slide dalam presentasi tujuan
ISlideCollection slds = destPres.Slides;
slds.AddClone(SourceSlide, iSlide, true);
// Mengklon slide master yang diinginkan dari presentasi sumber ke koleksi master di // presentasi tujuan
// Simpan presentasi tujuan ke disk
destPres.Save("CloneToAnotherPresentationWithMaster_out.pptx", SaveFormat.Pptx);
}
}
Kloning Slide di Akhir Seksi yang Ditentukan
Dengan Aspose.Slides untuk .NET, Anda dapat mengkloning slide dari satu seksi dalam presentasi dan menyisipkan slide tersebut ke seksi lain dalam presentasi yang sama. Dalam kasus ini, Anda harus menggunakan metode AddClone dari antarmuka ISlideCollection .
Kode C# berikut menunjukkan cara mengkloning slide dan menyisipkan slide yang diklon ke dalam seksi yang ditentukan:
using Aspose.Slides;
using Aspose.Slides.Export;
using (Presentation pres = new Presentation())
{
ISlide slide = pres.Slides.AddEmptySlide(pres.Slides[0].LayoutSlide);
slide.Shapes.AddAutoShape(ShapeType.Ellipse, 150, 150, 100, 100); // untuk diklon
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);
}
Pastikan Ukuran Slide Sesuai
Saat mengkloning slide ke presentasi lain, pastikan presentasi tujuan memiliki ukuran slide yang sama dengan sumber. Jika ukuran slide berbeda, Aspose.Slides tidak secara otomatis mengubah skala bentuk yang diklon—koordinat dan dimensi aslinya dipertahankan, yang dapat menyebabkan konten tampak tidak sejajar atau melampaui batas slide.
Anda dapat mengatur ukuran slide presentasi tujuan agar cocok dengan sumber sebelum mengkloning master dan slide:
SizeF sourceSize = sourcePresentation.SlideSize.Size;
targetPresentation.SlideSize.SetSize(
sourceSize.Width, sourceSize.Height, SlideSizeScaleType.DoNotScale);
Lakukan ini sebelum mengkloning master dan slide.
FAQ
Apakah catatan presenter dan komentar reviewer juga diklon?
Ya. Halaman catatan dan komentar review termasuk dalam klon. Jika Anda tidak menginginkannya, hapus mereka setelah penyisipan.
Bagaimana chart dan sumber data mereka ditangani?
Objek chart, pemformatan, dan data yang disematkan disalin. Jika chart terhubung ke sumber eksternal (mis., workbook yang disematkan OLE), kaitan tersebut dipertahankan sebagai OLE object. Setelah dipindahkan antar file, verifikasi ketersediaan data dan perilaku penyegaran.
Bisakah saya mengontrol posisi penyisipan dan seksi untuk klon?
Ya. Anda dapat menyisipkan klon pada indeks slide tertentu dan menempatkannya ke section yang dipilih. Jika seksi tujuan belum ada, buat terlebih dahulu lalu pindahkan slide ke dalamnya.