โคลนสไลด์การนำเสนอใน .NET
บทนำ
การโคลนคือกระบวนการทำสำเนาที่ตรงกันหรือสำเนาเหมือนของบางอย่าง Aspose.Slides ยังอนุญาตให้คุณคัดลอก (โคลน) สไลด์ใด ๆ แล้วแทรกสไลด์ที่ถูกโคลนเข้าไปในงานนำเสนอปัจจุบันหรือในงานนำเสนอที่เปิดอยู่อื่น ๆ การโคลนสไลด์สร้างสไลด์ใหม่ที่นักพัฒนาสามารถแก้ไขได้โดยไม่กระทบต่อสไลด์ต้นฉบับ มีหลายวิธีในการโคลนสไลด์:
- โคลนที่ส่วนท้ายของงานนำเสนอ
- โคลนที่ตำแหน่งอื่นภายในงานนำเสนอ
- โคลนที่ส่วนท้ายของงานนำเสนออื่น
- โคลนที่ตำแหน่งอื่นในงานนำเสนออื่น
- โคลนที่ตำแหน่งเฉพาะในงานนำเสนออื่น
In Aspose.Slides for .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);
}
}
โคลนสไลด์ที่ตำแหน่งเฉพาะในงานนำเสนออื่น
หากคุณต้องการโคลนสไลด์พร้อมมาสเตอร์สไลด์จากงานนำเสนอหนึ่งและใช้ในงานนำเสนออื่น คุณต้องโคลนมาสเตอร์สไลด์ที่ต้องการจากงานนำเสนอแหล่งที่มามาไปยังงานนำเสนอปลายทางก่อน แล้วจึงใช้มาสเตอร์สไลด์นั้นสำหรับโคลนสไลด์ที่มีมาสเตอร์สไลด์ เมธอด 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);
// คัดลอกมาสเตอร์สไลด์ที่ต้องการจากงานนำเสนอแหล่งที่มาลงในคอลเลกชันมาสเตอร์ใน // งานนำเสนอปลายทาง
// บันทึกงานนำเสนอปลายทางลงดิสก์
destPres.Save("CloneToAnotherPresentationWithMaster_out.pptx", SaveFormat.Pptx);
}
}
โคลนสไลด์ที่ส่วนท้ายของส่วนที่ระบุ
ด้วย Aspose.Slides for .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) การเชื่อมโยงนั้นจะถูกรักษาเป็นวัตถุ OLE. หลังจากย้ายไฟล์ระหว่างกัน ควรตรวจสอบว่าข้อมูลยังพร้อมใช้งานและพฤติกรรมการรีเฟรช.
ฉันสามารถควบคุมตำแหน่งการแทรกและส่วนของคลอนได้หรือไม่?
ใช่ คุณสามารถแทรกคลอนที่ดัชนีสไลด์ที่ระบุและใส่ลงในส่วน ที่เลือกได้ หากส่วนเป้าหมายไม่มีอยู่ ให้สร้างส่วนนั้นก่อนแล้วจึงย้ายสไลด์ไปยังส่วนนั้น.