โคลนสไลด์การนำเสนอใน C++
บทนำ
การทำสำเนา (Cloning) คือกระบวนการสร้างสำเนาที่ตรงกันหรือจำลองสิ่งใดสิ่งหนึ่งอย่างแม่นยำ Aspose.Slides for C++ ยังทำให้สามารถสร้างสำเนาหรือโคลนของสไลด์ใด ๆ แล้วแทรกสไลด์ที่โคลนนั้นเข้าสู่การพรีเซนเทชันปัจจุบันหรือการพรีเซนเทชันอื่นที่เปิดอยู่ได้ กระบวนการโคลนสไลด์จะสร้างสไลด์ใหม่ที่นักพัฒนาสามารถแก้ไขได้โดยไม่กระทบต่อสไลด์ต้นฉบับ มีหลายวิธีที่สามารถโคลนสไลด์ได้:
- โคลนที่ตำแหน่งสุดท้ายภายในพรีเซนเทชันเดียวกัน
- โคลนที่ตำแหน่งอื่นภายในพรีเซนเทชันเดียวกัน
- โคลนที่ตำแหน่งสุดท้ายในพรีเซนเทชันอื่น
- โคลนที่ตำแหน่งอื่นในพรีเซนเทชันอื่น
- โคลนที่ตำแหน่งที่กำหนดในพรีเซนเทชันอื่น
ใน Aspose.Slides for C++ (คอลเลกชันของอ็อบเจกต์ ISlide ) ที่เปิดเผยโดยอ็อบเจกต์ Presentation ให้เมธอด AddClone และ InsertClone เพื่อดำเนินการโคลนสไลด์ตามประเภทที่กล่าวข้างต้น
โคลนสไลด์ที่ตำแหน่งสุดท้ายของพรีเซนเทชัน
หากคุณต้องการโคลนสไลด์และจากนั้นใช้ในไฟล์พรีเซนเทชันเดียวกันที่ตำแหน่งสุดท้ายของสไลด์ที่มีอยู่ ให้ใช้เมธอด AddClone ตามขั้นตอนต่อไปนี้:
- สร้างอินสแตนซ์ของคลาส Presentation .
- สร้างอินสแตนซ์ของคลาส ISlideCollection โดยอ้างอิงคอลเลกชัน Slides ที่เปิดเผยโดยอ็อบเจกต์ Presentation .
- เรียกเมธอด AddClone ที่เปิดเผยโดยอ็อบเจกต์ ISlideCollection และส่งสไลด์ที่ต้องการโคลนเป็นพารามิเตอร์ให้เมธอด AddClone .
- เขียนไฟล์พรีเซนเทชันที่แก้ไขแล้ว
ในตัวอย่างด้านล่าง เราได้โคลนสไลด์ (อยู่ที่ตำแหน่งแรก – ดัชนีศูนย์ – ของพรีเซนเทชัน) ไปยังตำแหน่งสุดท้ายของพรีเซนเทชัน
โคลนสไลด์ไปยังตำแหน่งอื่นภายในพรีเซนเทชันเดียวกัน
in Presentation** หากคุณต้องการโคลนสไลด์และจากนั้นใช้ในไฟล์พรีเซนเทชันเดียวกันแต่ตำแหน่งต่างออกไป ให้ใช้เมธอด InsertClone :
- สร้างอินสแตนซ์ของคลาส Presentation .
- สร้างอินสแตนซ์ของคลาสโดยอ้างอิงคอลเลกชัน Slides ที่เปิดเผยโดยอ็อบเจกต์ Presentation .
- เรียกเมธอด InsertClone ที่เปิดเผยโดยอ็อบเจกต์ ISlideCollection และส่งสไลด์ที่ต้องการโคลนพร้อมกับดัชนีตำแหน่งใหม่เป็นพารามิเตอร์ให้เมธอด InsertClone .
- เขียนพรีเซนเทชันที่แก้ไขแล้วเป็นไฟล์ PPTX
ในตัวอย่างด้านล่าง เราได้โคลนสไลด์ (อยู่ที่ดัชนีศูนย์ – ตำแหน่ง 1 – ของพรีเซนเทชัน) ไปยังดัชนี 1 – ตำแหน่ง 2 – ของพรีเซนเทชัน
โคลนสไลด์ที่ตำแหน่งสุดท้ายของพรีเซนเทชันอื่น
หากคุณต้องการโคลนสไลด์จากพรีเซนเทชันหนึ่งและใช้ในพรีเซนเทชันอื่นที่ตำแหน่งสุดท้ายของสไลด์ที่มีอยู่:
- สร้างอินสแตนซ์ของคลาส Presentation ที่ประกอบด้วยพรีเซนเทชันที่สไลด์จะถูกโคลนจาก
- สร้างอินสแตนซ์ของคลาส Presentation ที่ประกอบด้วยพรีเซนเทชันปลายทางที่จะเพิ่มสไลด์เข้าไป
- สร้างอินสแตนซ์ของคลาส ISlideCollection โดยอ้างอิงคอลเลกชัน Slides ที่เปิดเผยโดยอ็อบเจกต์ Presentation ของพรีเซนเทชันปลายทาง
- เรียกเมธอด AddClone ที่เปิดเผยโดยอ็อบเจกต์ ISlideCollection และส่งสไลด์จากพรีเซนเทชันต้นทางเป็นพารามิเตอร์ให้เมธอด AddClone .
- เขียนไฟล์พรีเซนเทชันปลายทางที่แก้ไขแล้ว
ในตัวอย่างด้านล่าง เราได้โคลนสไลด์ (จากดัชนีแรกของพรีเซนเทชันต้นทาง) ไปยังตำแหน่งสุดท้ายของพรีเซนเทชันปลายทาง
โคลนสไลด์ไปยังตำแหน่งอื่นในพรีเซนเทชันอื่น
หากคุณต้องการโคลนสไลด์จากพรีเซนเทชันหนึ่งและใช้ในพรีเซนเทชันอื่นที่ตำแหน่งเฉพาะ:
- สร้างอินสแตนซ์ของคลาส Presentation ที่มีพรีเซนเทชันต้นทางที่สไลด์จะถูกโคลนจาก
- สร้างอินสแตนซ์ของคลาส Presentation ที่มีพรีเซนเทชันที่จะเพิ่มสไลด์เข้าไป
- สร้างอินสแตนซ์ของคลาส ISlideCollection โดยอ้างอิงคอลเลกชัน Slides ที่เปิดเผยโดยอ็อบเจกต์ Presentation ของพรีเซนเทชันปลายทาง
- เรียกเมธอด InsertClone ที่เปิดเผยโดยอ็อบเจกต์ ISlideCollection และส่งสไลด์จากพรีเซนเทชันต้นทางพร้อมตำแหน่งที่ต้องการเป็นพารามิเตอร์ให้เมธอด InsertClone .
- เขียนไฟล์พรีเซนเทชันปลายทางที่แก้ไขแล้ว
ในตัวอย่างด้านล่าง เราได้โคลนสไลด์ (จากดัชนีศูนย์ของพรีเซนเทชันต้นทาง) ไปยังดัชนี 1 (ตำแหน่ง 2) ของพรีเซนเทชันปลายทาง
โคลนสไลด์ที่ตำแหน่งที่กำหนดในพรีเซนเทชันอื่น
หากคุณต้องการโคลนสไลด์พร้อมมาสเตอร์สไลด์จากพรีเซนเทชันหนึ่งและใช้ในพรีเซนเทชันอื่น คุณต้องโคลนมาสเตอร์สไลด์ที่ต้องการจากพรีเซนเทชันต้นทางไปยังพรีเซนเทชันปลายทางก่อน แล้วจึงใช้มาสเตอร์สไลด์นั้นในการโคลนสไลด์พร้อมมาสเตอร์สไลด์ เมธอด AddClone(ISlide, IMasterSlide) คาดหวังมาสเตอร์สไลด์จากพรีเซนเทชันปลายทาง ไม่ใช่จากพรีเซนเทชันต้นทาง เพื่อโคลนสไลด์พร้อมมาสเตอร์ กรุณาตามขั้นตอนต่อไปนี้:
- สร้างอินสแตนซ์ของคลาส Presentation ที่มีพรีเซนเทชันต้นทางที่สไลด์จะถูกโคลนจาก
- สร้างอินสแตนซ์ของคลาส Presentation ที่มีพรีเซนเทชันปลายทางที่สไลด์จะถูกโคลนไป
- เข้าถึงสไลด์ที่ต้องการโคลนพร้อมกับมาสเตอร์สไลด์
- สร้างอินสแตนซ์ของคลาส IMasterSlideCollection โดยอ้างอิงคอลเลกชัน Masters ที่เปิดเผยโดยอ็อบเจกต์ Presentation ของพรีเซนเทชันปลายทาง
- เรียกเมธอด AddClone ที่เปิดเผยโดยอ็อบเจกต์ IMasterSlideCollection และส่งมาสเตอร์จากไฟล์ PPTX ต้นทางที่จะโคลนเป็นพารามิเตอร์ให้เมธอด AddClone .
- สร้างอินสแตนซ์ของคลาส ISlideCollection โดยตั้งค่าอ้างอิงไปยังคอลเลกชัน Slides ที่เปิดเผยโดยอ็อบเจกต์ Presentation ของพรีเซนเทชันปลายทาง
- เรียกเมธอด AddClone ที่เปิดเผยโดยอ็อบเจกต์ ISlideCollection และส่งสไลด์จากพรีเซนเทชันต้นทางที่ต้องการโคลนและมาสเตอร์สไลด์เป็นพารามิเตอร์ให้เมธอด AddClone .
- เขียนไฟล์พรีเซนเทชันปลายทางที่แก้ไขแล้ว
ในตัวอย่างด้านล่าง เราได้โคลนสไลด์พร้อมมาสเตอร์ (อยู่ที่ดัชนีศูนย์ของพรีเซนเทชันต้นทาง) ไปยังตำแหน่งสุดท้ายของพรีเซนเทชันปลายทางโดยใช้มาสเตอร์จากสไลด์ต้นทาง
โคลนสไลด์ที่ตำแหน่งสุดท้ายของส่วนที่ระบุ
หากคุณต้องการโคลนสไลด์และจากนั้นใช้ในไฟล์พรีเซนเทชันเดียวกันแต่ในส่วนที่ต่างกัน ให้ใช้เมธอด AddClone() ที่เปิดเผยโดยอินเตอร์เฟส ISlideCollection Aspose.Slides for C++ ทำให้สามารถโคลนสไลด์จากส่วนแรกแล้วแทรกสไลด์ที่โคลนนั้นไปยังส่วนที่สองของพรีเซนเทชันเดียวกันได้
โค้ดตัวอย่างต่อไปนี้แสดงวิธีโคลนสไลด์และแทรกสไลด์ที่โคลนเข้าไปใน section ที่ระบุ
ตรวจสอบให้ขนาดสไลด์ตรงกัน
เมื่อโคลนสไลด์ไปยังพรีเซนเทชันอื่น ให้แน่ใจว่าพรีเซนเทชันปลายทางมีขนาดสไลด์เดียวกับต้นทาง หากขนาดสไลด์แตกต่างกัน Aspose.Slides จะไม่ปรับขนาดรูปร่างที่โคลนโดยอัตโนมัติ – พิกัดและขนาดดั้งเดิมจะคงไว้ซึ่งอาจทำให้เนื้อหาแสดงออกนอกขอบสไลด์หรือจัดแนวผิดพลาด
คุณสามารถตั้งค่าขนาดสไลด์ของพรีเซนเทชันปลายทางให้ตรงกับต้นทางก่อนการโคลนมาสเตอร์และสไลด์ได้:
auto sourceSize = sourcePresentation->get_SlideSize()->get_Size();
targetPresentation->get_SlideSize()->SetSize(
sourceSize.get_Width(), sourceSize.get_Height(), SlideSizeScaleType::DoNotScale);
ทำเช่นนี้ก่อนการโคลนมาสเตอร์และสไลด์
คำถามที่พบบ่อย
บันทึกผู้พูดและคอมเมนต์ของผู้ตรวจสอบจะถูกโคลนด้วยหรือไม่?
ใช่. หน้าโน้ตและคอมเมนต์การตรวจสอบจะรวมอยู่ในโคลน หากคุณไม่ต้องการมัน, ลบออก หลังจากแทรก
แผนภูมิและแหล่งข้อมูลของมันถูกจัดการอย่างไร?
อ็อบเจกต์แผนภูมิ การจัดรูปแบบ และข้อมูลที่ฝังจะถูกคัดลอก หากแผนภูมิเชื่อมโยงกับแหล่งข้อมูลภายนอก (เช่น ไฟล์ workbook ที่ฝังด้วย OLE) การเชื่อมต่อจะถูกเก็บไว้เป็น OLE object หลังจากย้ายระหว่างไฟล์ ให้ตรวจสอบความพร้อมของข้อมูลและพฤติกรรมการรีเฟรช
ฉันสามารถควบคุมตำแหน่งการแทรกและส่วนต่าง ๆ ของโคลนได้หรือไม่?
ใช่. คุณสามารถแทรกโคลนที่ดัชนีสไลด์ที่ระบุและวางลงในsectionที่เลือก หากส่วนเป้าหมายไม่มีอยู่ ให้สร้างก่อนแล้วจึงย้ายสไลด์เข้าไป