کلون اسلایدهای ارائه در .NET
معرفی
کلونینگ (تکثیر) فرآیند ساخت یک نسخهٔ دقیق یا کپی از یک شیء است. Aspose.Slides همچنین به شما اجازه میدهد هر اسلایدی را کپی (کلون) کنید و سپس اسلاید کلونشده را در ارائهٔ جاری یا هر ارائهٔ دیگری که باز است، وارد کنید. کلونینگ اسلاید یک اسلاید جدید ایجاد میکند که توسعهدهندگان میتوانند بدون تأثیر بر اسلاید اصلی، آن را اصلاح کنند. چندین روش برای کلون کردن یک اسلاید وجود دارد:
- کلون کردن در انتهای یک ارائه.
- کلون کردن در موقعیت دیگری درون یک ارائه.
- کلون کردن در انتهای ارائهای دیگر.
- کلون کردن در موقعیت دیگری در ارائهای دیگر.
- کلون کردن در موقعیت خاصی در ارائهای دیگر.
در Aspose.Slides برای .NET، مجموعهٔ اسلایدها (یک مجموعه شامل اشیاء ISlide ) که توسط شیء Presentation در دسترس است، متدهای AddClone و InsertClone را برای انجام عملیات کلونسازی اسلاید که در بالا توصیف شد، فراهم میکند.
کلون کردن یک اسلاید در انتهای یک ارائه
اگر میخواهید یک اسلاید را کلون کنید و سپس در همان فایل ارائه، در انتهای اسلایدهای موجود استفاده کنید، مطابق مراحل زیر از متد AddClone استفاده کنید:
- یک نمونه از کلاس Presentation ایجاد کنید.
- کلاس ISlideCollection را با ارجاع به مجموعهٔ Slides که توسط شیء Presentation در دسترس است، نمونهسازی کنید.
- متد AddClone را که توسط شیء ISlideCollection در دسترس است، فراخوانی کنید و اسلایدی که باید کلون شود را بهعنوان پارامتر به متد AddClone پاس دهید.
- فایل ارائهٔ اصلاحشده را بنویسید.
در مثال زیر، یک اسلاید (قرار گرفته در موقعیت اول – ایندکس صفر – ارائه) را به انتهای ارائه کلون کردیم.
// نمونهسازی کلاس Presentation که نمایانگر یک فایل ارائه است
using (Presentation pres = new Presentation("CloneWithinSamePresentationToEnd.pptx"))
{
// کلون اسلاید مورد نظر به انتهای مجموعه اسلایدها در همان ارائه
ISlideCollection slds = pres.Slides;
slds.AddClone(pres.Slides[0]);
// نوشتن ارائه اصلاحشده به دیسک
pres.Save("Aspose_CloneWithinSamePresentationToEnd_out.pptx", SaveFormat.Pptx);
}
کلون کردن یک اسلاید به موقعیت دیگری درون یک ارائه
اگر میخواهید یک اسلاید را کلون کنید و سپس در همان فایل ارائه، اما در موقعیت متفاوتی استفاده کنید، از متد InsertClone استفاده کنید:
- یک نمونه از کلاس Presentation ایجاد کنید.
- کلاس را با ارجاع به مجموعهٔ Slides که توسط شیء Presentation در دسترس است، نمونهسازی کنید.
- متد InsertClone را که توسط شیء ISlideCollection در دسترس است، فراخوانی کنید و اسلایدی که باید کلون شود را همراه با ایندکس موقعیت جدید بهعنوان پارامتر به متد InsertClone پاس دهید.
- ارائهٔ اصلاحشده را بهصورت فایل PPTX بنویسید.
در مثال زیر، یک اسلاید (قرار گرفته در ایندکس صفر – موقعیت 1 – ارائه) را به ایندکس 1 – موقعیت 2 – ارائه کلون کردیم.
// نمونهسازی کلاس Presentation که نمایانگر یک فایل ارائه است
using (Presentation pres = new Presentation("CloneWithInSamePresentation.pptx"))
{
// کلون اسلاید مورد نظر به انتهای مجموعه اسلایدها در همان ارائه
ISlideCollection slds = pres.Slides;
// کلون اسلاید مورد نظر به ایندکس مشخص شده در همان ارائه
slds.InsertClone(2, pres.Slides[1]);
// نوشتن ارائه اصلاحشده به دیسک
pres.Save("Aspose_CloneWithInSamePresentation_out.pptx", SaveFormat.Pptx);
}
کلون کردن یک اسلاید در انتهای ارائهای دیگر
اگر نیاز دارید یک اسلاید را از یک ارائه کلون کنید و در انتهای اسلایدهای موجود یک ارائهٔ دیگر استفاده کنید:
- یک نمونه از کلاس Presentation ایجاد کنید که شامل ارائهای است که اسلاید از آن کلون میشود.
- یک نمونه از کلاس Presentation ایجاد کنید که شامل ارائهٔ مقصد است که اسلاید به آن اضافه میشود.
- کلاس ISlideCollection را با ارجاع به مجموعهٔ Slides که توسط شیء Presentation ارائهٔ مقصد در دسترس است، نمونهسازی کنید.
- متد AddClone را که توسط شیء ISlideCollection در دسترس است، فراخوانی کنید و اسلاید از ارائه منبع را بهعنوان پارامتر به متد AddClone پاس دهید.
- فایل ارائهٔ مقصد اصلاحشده را بنویسید.
در مثال زیر، یک اسلاید (از ایندکس اول ارائه منبع) را به انتهای ارائهٔ مقصد کلون کردیم.
// نمونهسازی کلاس Presentation برای بارگذاری فایل ارائه منبع
using (Presentation srcPres = new Presentation("CloneAtEndOfAnother.pptx"))
{
// نمونهسازی کلاس Presentation برای PPTX مقصد (جایی که اسلاید کلون میشود)
using (Presentation destPres = new Presentation())
{
// کلون اسلاید مورد نظر از ارائه منبع به انتهای مجموعه اسلایدها در ارائه مقصد
ISlideCollection slds = destPres.Slides;
slds.AddClone(srcPres.Slides[0]);
// نوشتن ارائه مقصد به دیسک
destPres.Save("Aspose2_out.pptx", SaveFormat.Pptx);
}
}
کلون کردن یک اسلاید به موقعیت دیگری در ارائهای دیگر
اگر نیاز دارید یک اسلاید را از یک ارائه کلون کنید و در موقعیت خاصی از ارائهٔ دیگری استفاده کنید:
- یک نمونه از کلاس Presentation ایجاد کنید که شامل ارائهٔ منبع است که اسلاید از آن کلون میشود.
- یک نمونه از کلاس Presentation ایجاد کنید که شامل ارائهای است که اسلاید به آن اضافه میشود.
- کلاس ISlideCollection را با ارجاع به مجموعهٔ Slides که توسط شیء Presentation ارائهٔ مقصد در دسترس است، نمونهسازی کنید.
- متد InsertClone را که توسط شیء ISlideCollection در دسترس است، فراخوانی کنید و اسلاید از ارائه منبع را همراه با موقعیت موردنظر بهعنوان پارامتر به متد InsertClone پاس دهید.
- فایل ارائهٔ مقصد اصلاحشده را بنویسید.
در مثال زیر، یک اسلاید (از ایندکس صفر ارائه منبع) را به ایندکس 1 (موقعیت 2) ارائهٔ مقصد کلون کردیم.
// نمونهسازی کلاس Presentation برای بارگذاری فایل ارائه منبع
using (Presentation srcPres = new Presentation("CloneAtEndOfAnother.pptx"))
{
// نمونهسازی کلاس Presentation برای PPTX مقصد (جایی که اسلاید کلون میشود)
using (Presentation destPres = new Presentation())
{
ISlideCollection slds = destPres.Slides;
slds.InsertClone(2, srcPres.Slides[0]);
// نوشتن ارائه مقصد به دیسک
destPres.Save("Aspose2_out.pptx", SaveFormat.Pptx);
}
}
کلون کردن یک اسلاید در موقعیت خاصی در ارائهای دیگر
اگر نیاز دارید اسلایدی را همراه با اسلاید اصلی (master slide) از یک ارائه کلون کنید و در ارائهٔ دیگری استفاده کنید، ابتدا باید اسلاید اصلی موردنظر را از ارائه منبع به ارائه مقصد کلون کنید. سپس برای کلون کردن اسلاید با اسلاید اصلی، از متد AddClone(ISlide, IMasterSlide) استفاده میشود که یک اسلاید اصلی از ارائه مقصد میگیرد، نه از منبع. برای کلون کردن اسلاید با اسلاید اصلی، مراحل زیر را دنبال کنید:
- یک نمونه از کلاس Presentation ایجاد کنید که شامل ارائهٔ منبع است که اسلاید از آن کلون میشود.
- یک نمونه از کلاس Presentation ایجاد کنید که شامل ارائهٔ مقصد است که اسلاید به آن کلون میشود.
- به اسلایدی که باید کلون شود همراه با اسلاید اصلی دسترسی پیدا کنید.
- کلاس IMasterSlideCollection را با ارجاع به مجموعهٔ Masters که توسط شیء Presentation ارائهٔ مقصد در دسترس است، نمونهسازی کنید.
- متد AddClone را که توسط شیء IMasterSlideCollection در دسترس است، فراخوانی کنید و اسلاید اصلی از فایل PPTX منبع را بهعنوان پارامتر به متد AddClone پاس دهید.
- کلاس ISlideCollection را با تنظیم ارجاع به مجموعهٔ Slides که توسط شیء Presentation ارائهٔ مقصد در دسترس است، نمونهسازی کنید.
- متد AddClone را که توسط شیء ISlideCollection در دسترس است، فراخوانی کنید و اسلاید از ارائه منبع به همراه اسلاید اصلی را بهعنوان پارامتر به متد AddClone پاس دهید.
- فایل ارائهٔ مقصد اصلاحشده را بنویسید.
در مثال زیر، یک اسلاید همراه با اسلاید اصلی (قرار گرفته در ایندکس صفر ارائه منبع) را با استفاده از اسلاید اصلی از اسلاید منبع به انتهای ارائهٔ مقصد کلون کردیم.
// نمونهسازی کلاس Presentation برای بارگذاری فایل ارائه منبع
using (Presentation srcPres = new Presentation("CloneToAnotherPresentationWithMaster.pptx"))
{
// نمونهسازی کلاس Presentation برای ارائه مقصد (جایی که اسلاید باید کلون شود)
using (Presentation destPres = new Presentation())
{
// نمونهسازی ISlide از مجموعه اسلایدهای ارائه منبع همراه با
// اسلاید اصلی
ISlide SourceSlide = srcPres.Slides[0];
IMasterSlide SourceMaster = SourceSlide.LayoutSlide.MasterSlide;
// کلون اسلاید اصلی موردنظر از ارائه منبع به مجموعهٔ اسلایدهای اصلی در
// ارائه مقصد
IMasterSlideCollection masters = destPres.Masters;
IMasterSlide DestMaster = SourceSlide.LayoutSlide.MasterSlide;
// کلون اسلاید اصلی موردنظر از ارائه منبع به مجموعهٔ اسلایدهای اصلی در
// ارائه مقصد
IMasterSlide iSlide = masters.AddClone(SourceMaster);
// کلون اسلاید موردنظر از ارائه منبع همراه با اسلاید اصلی موردنظر به انتهای
// مجموعهٔ اسلایدها در ارائه مقصد
ISlideCollection slds = destPres.Slides;
slds.AddClone(SourceSlide, iSlide, true);
// کلون اسلاید اصلی موردنظر از ارائه منبع به مجموعهٔ اسلایدهای اصلی در // Destination presentation
// ذخیرهٔ ارائه مقصد به دیسک
destPres.Save("CloneToAnotherPresentationWithMaster_out.pptx", SaveFormat.Pptx);
}
}
کلون کردن یک اسلاید در انتهای یک بخش مشخص
با Aspose.Slides برای .NET، میتوانید یک اسلاید را از یک بخش از یک ارائه کلون کنید و آن اسلاید را در یک بخش دیگر از همان ارائه وارد نمایید. در این حالت باید از متد AddClone از رابط ISlideCollection استفاده کنید.
این کد C# نشان میدهد چگونه یک اسلاید را کلون کنید و اسلاید کلونشده را در یک بخش مشخص وارد کنید:
using (Presentation pres = new Presentation())
{
ISlide slide = pres.Slides.AddEmptySlide(pres.Slides[0].LayoutSlide);
slide.Shapes.AddAutoShape(ShapeType.Ellipse, 150, 150, 100, 100); // برای کلون
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);
}
سوالات متداول
آیا یادداشتهای سخنران و نظرات مرورگر کلون میشوند؟
بله. صفحه یادداشتها و نظرات مرورگر در کلون گنجانده میشوند. اگر نمیخواهید آنها را داشته باشید، پس از درج حذف آنها کنید.
نمودارها و منابع دادهای آنها چگونه مدیریت میشوند؟
شیء نمودار، قالببندی و دادههای توکار کپی میشوند. اگر نمودار به منبع خارجی (مثلاً یک کتابکار OLE‑embedded) لینک داشته باشد، این لینک به عنوان یک شیء OLE حفظ میشود. پس از جابهجایی بین فایلها، دسترسی دادهها و رفتار تازهسازی را بررسی کنید.
آیا میتوانم موقعیت درج و بخشهای کلون را کنترل کنم؟
بله. میتوانید کلون را در ایندکس اسلاید مشخصی درج کنید و آن را به یک بخش دلخواه منتقل کنید. اگر بخش هدف وجود نداشته باشد، ابتدا آن را ایجاد کنید و سپس اسلاید را به آن منتقل کنید.