کلون اسلایدهای ارائه در جاوااسکریپت
مقدمه
کلون کردن فرآیند ایجاد یک کپی دقیق یا نسخهٔ مشابه از چیزی است. Aspose.Slides برای Node.js از طریق Java همچنین امکان ایجاد یک کپی یا کلون از هر اسلایدی را فراهم میکند و سپس آن اسلاید کلونشده را به ارائهٔ فعلی یا هر ارائهٔ دیگری که باز است، درج میکند. فرآیند کلونسازی اسلاید یک اسلاید جدید ایجاد میکند که میتواند توسط توسعهدهندگان بدون تغییر اسلاید اصلی، اصلاح شود. چند روش مختلف برای کلون کردن یک اسلاید وجود دارد:
- کلون در انتها درون یک ارائه.
- کلون در موقعیت دیگری درون ارائه.
- کلون در انتها در یک ارائهٔ دیگر.
- کلون در موقعیت دیگری در یک ارائهٔ دیگر.
- کلون در موقعیت خاصی در یک ارائهٔ دیگر.
در Aspose.Slides برای Node.js از طریق Java، (مجموعهای از اشیاء Slide که توسط شیء Presentation نمایان میشود) متدهای addClone و insertClone را برای انجام انواع کلونسازی اسلاید فوقالذکر فراهم میکند
کلون در انتها درون یک ارائه
اگر میخواهید یک اسلاید را کلون کنید و سپس آن را در همان فایل ارائه در انتهای اسلایدهای موجود استفاده کنید، متد addClone را طبق مراحل زیر به کار ببرید:
- یک نمونه از کلاس Presentation ایجاد کنید.
- کلاس SlideCollection را با ارجاع به مجموعه Slides که توسط شیء Presentation نمایان میشود، نمونهسازی کنید.
- متد addClone را که توسط شیء SlideCollection نمایان میشود، فراخوانی کنید و اسلایدی که باید کلون شود را بهعنوان پارامتر به متد addClone پاس دهید.
- فایل ارائهٔ اصلاحشده را بنویسید.
در مثال زیر، یک اسلاید (که در اولین موقعیت – ایندکس صفر – ارائه قرار داشت) را به انتهای ارائه کلون کردهایم.
// نمونهسازی کلاس Presentation که نمایانگر یک فایل ارائه است
var pres = new aspose.slides.Presentation("CloneWithinSamePresentationToEnd.pptx");
try {
// کلون اسلاید موردنظر به انتهای مجموعه اسلایدها در همان ارائه
var slds = pres.getSlides();
slds.addClone(pres.getSlides().get_Item(0));
// نوشتن ارائهٔ اصلاحشده به دیسک
pres.save("Aspose_CloneWithinSamePresentationToEnd_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
pres.dispose();
}
کلون در موقعیت دیگری درون ارائه
اگر میخواهید یک اسلاید را کلون کنید و سپس آن را در همان فایل ارائه اما در موقعیت متفاوتی استفاده کنید، از متد insertClone استفاده کنید:
- یک نمونه از کلاس Presentation ایجاد کنید.
- کلاس را با ارجاع به مجموعه Slides که توسط شیء Presentation نمایان میشود، نمونهسازی کنید.
- متد insertClone را که توسط شیء SlideCollection نمایان میشود، فراخوانی کنید و اسلایدی که باید کلون شود را به همراه ایندکس موقعیت جدید بهعنوان پارامتر به متد insertClone پاس دهید.
- ارائهٔ اصلاحشده را بهصورت فایل PPTX بنویسید.
در مثال زیر، یک اسلاید (که در ایندکس صفر – موقعیت 1 – ارائه قرار داشت) را به ایندکس 1 – موقعیت 2 – ارائه کلون کردهایم.
// نمونهسازی کلاس Presentation که نمایانگر یک فایل ارائه است
var pres = new aspose.slides.Presentation("CloneWithInSamePresentation.pptx");
try {
// کلون اسلاید موردنظر به انتهای مجموعه اسلایدها در همان ارائه
var slds = pres.getSlides();
// کلون اسلاید موردنظر به ایندکس مشخص در همان ارائه
slds.insertClone(2, pres.getSlides().get_Item(1));
// نوشتن ارائهٔ اصلاحشده به دیسک
pres.save("Aspose_CloneWithInSamePresentation_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
pres.dispose();
}
کلون در انتها در یک ارائهٔ دیگر
اگر نیاز دارید یک اسلاید را از یک ارائه کلون کنید و در فایل ارائهٔ دیگری، در انتهای اسلایدهای موجود استفاده کنید:
- یک نمونه از کلاس Presentation که شامل ارائهای است که اسلاید از آن کلون خواهد شد، ایجاد کنید.
- یک نمونه از کلاس Presentation که شامل ارائهٔ مقصد است که اسلاید به آن اضافه خواهد شد، ایجاد کنید.
- کلاس SlideCollection را با ارجاع به مجموعه Slides که توسط شیء Presentation ارائهٔ مقصد نمایان میشود، نمونهسازی کنید.
- متد addClone را که توسط شیء SlideCollection نمایان میشود، فراخوانی کنید و اسلاید از ارائهٔ منبع را بهعنوان پارامتر به متد addClone پاس دهید.
- فایل ارائهٔ مقصد اصلاحشده را بنویسید.
در مثال زیر، یک اسلاید (از ایندکس اول ارائهٔ منبع) را به انتهای ارائهٔ مقصد کلون کردهایم.
// نمونهسازی کلاس Presentation برای بارگذاری فایل ارائه منبع
var srcPres = new aspose.slides.Presentation("CloneAtEndOfAnother.pptx");
try {
// نمونهسازی کلاس Presentation برای PPTX مقصد (جایی که اسلاید باید کلون شود)
var destPres = new aspose.slides.Presentation();
try {
// کلون اسلاید موردنظر از ارائه منبع به انتهای مجموعه اسلایدها در ارائه مقصد
var slds = destPres.getSlides();
slds.addClone(srcPres.getSlides().get_Item(0));
// نوشتن ارائه مقصد به دیسک
destPres.save("Aspose2_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
destPres.dispose();
}
} finally {
srcPres.dispose();
}
کلون در موقعیت دیگری در یک ارائهٔ دیگر
اگر نیاز دارید یک اسلاید را از یک ارائه کلون کنید و در فایل ارائهٔ دیگری، در موقعیت خاصی استفاده کنید:
- یک نمونه از کلاس Presentation که شامل ارائهٔ منبع است که اسلاید از آن کلون میشود، ایجاد کنید.
- یک نمونه از کلاس Presentation که شامل ارائهای است که اسلاید به آن اضافه میشود، ایجاد کنید.
- کلاس SlideCollection را با ارجاع به مجموعه Slides که توسط شیء Presentation ارائهٔ مقصد نمایان میشود، نمونهسازی کنید.
- متد insertClone را که توسط شیء SlideCollection نمایان میشود، فراخوانی کنید و اسلاید از ارائهٔ منبع را به همراه موقعیت موردنظر بهعنوان پارامتر به متد insertClone پاس دهید.
- فایل ارائهٔ مقصد اصلاحشده را بنویسید.
در مثال زیر، یک اسلاید (از ایندکس صفر ارائهٔ منبع) را به ایندکس 1 (موقعیت 2) ارائهٔ مقصد کلون کردهایم.
// نمونهسازی کلاس Presentation برای بارگذاری فایل ارائه منبع
var srcPres = new aspose.slides.Presentation("CloneAtEndOfAnother.pptx");
try {
// نمونهسازی کلاس Presentation برای PPTX مقصد (جایی که اسلاید باید کلون شود)
var destPres = new aspose.slides.Presentation();
try {
// کلون اسلاید موردنظر از ارائه منبع به انتهای مجموعه اسلایدها در ارائه مقصد
var slds = destPres.getSlides();
slds.insertClone(2, srcPres.getSlides().get_Item(0));
// نوشتن ارائه مقصد به دیسک
destPres.save("Aspose2_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
destPres.dispose();
}
} finally {
srcPres.dispose();
}
کلون در موقعیت خاص در یک ارائهٔ دیگر
اگر نیاز دارید یک اسلاید همراه با اسلاید مادر را از یک ارائه کلون کنید و در ارائهٔ دیگری استفاده کنید، ابتدا باید اسلاید مادر موردنظر را از ارائهٔ منبع به ارائهٔ مقصد کلون کنید. سپس باید از آن اسلاید مادر برای کلون اسلاید همراه با اسلاید مادر استفاده کنید. متد addClone(ISlide, IMasterSlide, boolean) انتظار دارد اسلاید مادر از ارائهٔ مقصد باشد، نه از ارائهٔ منبع. برای کلون اسلاید همراه با اسلاید مادر، مراحل زیر را دنبال کنید:
- یک نمونه از کلاس Presentation که شامل ارائهٔ منبع است که اسلاید از آن کلون میشود، ایجاد کنید.
- یک نمونه از کلاس Presentation که شامل ارائهٔ مقصد است که اسلاید به آن کلون میشود، ایجاد کنید.
- به اسلایدی که باید کلون شود به همراه اسلاید مادر دسترسی پیدا کنید.
- کلاس MasterSlideCollection را با ارجاع به مجموعه Masters که توسط شیء Presentation ارائهٔ مقصد نمایان میشود، نمونهسازی کنید.
- متد addClone را که توسط شیء MasterSlideCollection نمایان میشود، فراخوانی کنید و اسلاید مادر از فایل PPTX منبع که باید کلون شود را بهعنوان پارامتر به متد addClone پاس دهید.
- کلاس SlideCollection را با تنظیم ارجاع به مجموعه Slides که توسط شیء Presentation ارائهٔ مقصد نمایان میشود، نمونهسازی کنید.
- متد addClone را که توسط شیء SlideCollection نمایان میشود، فراخوانی کنید و اسلاید از ارائهٔ منبع که باید کلون شود و اسلاید مادر را بهعنوان پارامتر به متد addClone پاس دهید.
- فایل ارائهٔ مقصد اصلاحشده را بنویسید.
در مثال زیر، یک اسلاید همراه با اسلاید مادر (در ایندکس صفر ارائهٔ منبع) را به انتهای ارائهٔ مقصد با استفاده از اسلاید مادر از اسلاید منبع کلون کردهایم.
// نمونهسازی کلاس Presentation برای بارگذاری فایل ارائه منبع
var srcPres = new aspose.slides.Presentation("CloneToAnotherPresentationWithMaster.pptx");
try {
// نمونهسازی کلاس Presentation برای ارائه مقصد (جایی که اسلاید باید کلون شود)
var destPres = new aspose.slides.Presentation();
try {
// نمونهسازی ISlide از مجموعه اسلایدها در ارائه منبع همراه با
// اسلاید مادر
var SourceSlide = srcPres.getSlides().get_Item(0);
var SourceMaster = SourceSlide.getLayoutSlide().getMasterSlide();
// کلون اسلاید مادر موردنظر از ارائه منبع به مجموعهٔ اسلایدهای مادر در
// ارائه مقصد
var masters = destPres.getMasters();
var DestMaster = SourceSlide.getLayoutSlide().getMasterSlide();
// کلون اسلاید مادر موردنظر از ارائه منبع به مجموعهٔ اسلایدهای مادر در
// ارائه مقصد
var iSlide = masters.addClone(SourceMaster);
// کلون اسلاید موردنظر از ارائه منبع با اسلاید مادر موردنظر به انتهای
// مجموعهٔ اسلایدها در ارائه مقصد
var slds = destPres.getSlides();
slds.addClone(SourceSlide, iSlide, true);
// ذخیرهٔ ارائه مقصد به دیسک
destPres.save("CloneToAnotherPresentationWithMaster_out.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
destPres.dispose();
}
} finally {
srcPres.dispose();
}
کلون در انتها در بخش مشخصی
اگر میخواهید یک اسلاید را کلون کنید و سپس آن را در همان فایل ارائه اما در بخش متفاوتی استفاده کنید، متد addClone را که توسط کلاس SlideCollection نمایان میشود، بهکار ببرید. Aspose.Slides برای Node.js از طریق Java امکان کلون اسلاید از بخش اول و سپس درج آن اسلاید کلونشده در بخش دوم همان ارائه را فراهم میکند.
کد نمونه زیر نشان میدهد چگونه یک اسلاید را کلون کنید و اسلاید کلونشده را در یک بخش مشخص درج کنید.
var presentation = new aspose.slides.Presentation();
try {
presentation.getSlides().get_Item(0).getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 200, 50, 300, 100);
presentation.getSections().addSection("Section 1", presentation.getSlides().get_Item(0));
var section2 = presentation.getSections().appendEmptySection("Section 2");
presentation.getSlides().addClone(presentation.getSlides().get_Item(0), section2);
// ذخیرهٔ ارائه مقصد به دیسک
presentation.save(dataDir + "CloneSlideIntoSpecifiedSection.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
if (presentation != null) {
presentation.dispose();
}
}
سوالات متداول
آیا یادداشتهای سخنران و نظرات مرورگر کلون میشوند؟
بله. صفحه یادداشتها و نظرات مرور در کلون گنجانده میشوند. اگر نمیخواهید آنها را داشته باشید، پس از درج، آنها را حذف کنید.
نمودارها و منابع داده آنها چگونه مدیریت میشوند؟
شیء نمودار، قالببندی و دادههای جاسازیشده کپی میشوند. اگر نمودار به منبع خارجی (مثلاً یک کتابکار OLE جاسازیشده) لینک شده باشد، آن لینک بهصورت یک OLE object حفظ میشود. پس از جابجایی بین فایلها، در دسترس بودن دادهها و رفتار تازهسازی را بررسی کنید.
آیا میتوانم موقعیت درج و بخشهای کلون را کنترل کنم؟
بله. میتوانید کلون را در یک ایندکس اسلاید خاص وارد کنید و آن را در یک section انتخابی قرار دهید. اگر بخش هدف وجود نداشت، ابتدا آن را ایجاد کنید و سپس اسلاید را به آن منتقل کنید.