โคลนสไลด์การนำเสนอใน C++

บทนำ

การทำสำเนา (Cloning) คือกระบวนการสร้างสำเนาที่ตรงกันหรือจำลองสิ่งใดสิ่งหนึ่งอย่างแม่นยำ Aspose.Slides for C++ ยังทำให้สามารถสร้างสำเนาหรือโคลนของสไลด์ใด ๆ แล้วแทรกสไลด์ที่โคลนนั้นเข้าสู่การพรีเซนเทชันปัจจุบันหรือการพรีเซนเทชันอื่นที่เปิดอยู่ได้ กระบวนการโคลนสไลด์จะสร้างสไลด์ใหม่ที่นักพัฒนาสามารถแก้ไขได้โดยไม่กระทบต่อสไลด์ต้นฉบับ มีหลายวิธีที่สามารถโคลนสไลด์ได้:

  • โคลนที่ตำแหน่งสุดท้ายภายในพรีเซนเทชันเดียวกัน
  • โคลนที่ตำแหน่งอื่นภายในพรีเซนเทชันเดียวกัน
  • โคลนที่ตำแหน่งสุดท้ายในพรีเซนเทชันอื่น
  • โคลนที่ตำแหน่งอื่นในพรีเซนเทชันอื่น
  • โคลนที่ตำแหน่งที่กำหนดในพรีเซนเทชันอื่น

ใน Aspose.Slides for C++ (คอลเลกชันของอ็อบเจกต์ ISlide ) ที่เปิดเผยโดยอ็อบเจกต์ Presentation ให้เมธอด AddClone และ InsertClone เพื่อดำเนินการโคลนสไลด์ตามประเภทที่กล่าวข้างต้น

โคลนสไลด์ที่ตำแหน่งสุดท้ายของพรีเซนเทชัน

หากคุณต้องการโคลนสไลด์และจากนั้นใช้ในไฟล์พรีเซนเทชันเดียวกันที่ตำแหน่งสุดท้ายของสไลด์ที่มีอยู่ ให้ใช้เมธอด AddClone ตามขั้นตอนต่อไปนี้:

  1. สร้างอินสแตนซ์ของคลาส Presentation .
  2. สร้างอินสแตนซ์ของคลาส ISlideCollection โดยอ้างอิงคอลเลกชัน Slides ที่เปิดเผยโดยอ็อบเจกต์ Presentation .
  3. เรียกเมธอด AddClone ที่เปิดเผยโดยอ็อบเจกต์ ISlideCollection และส่งสไลด์ที่ต้องการโคลนเป็นพารามิเตอร์ให้เมธอด AddClone .
  4. เขียนไฟล์พรีเซนเทชันที่แก้ไขแล้ว

ในตัวอย่างด้านล่าง เราได้โคลนสไลด์ (อยู่ที่ตำแหน่งแรก – ดัชนีศูนย์ – ของพรีเซนเทชัน) ไปยังตำแหน่งสุดท้ายของพรีเซนเทชัน

โคลนสไลด์ไปยังตำแหน่งอื่นภายในพรีเซนเทชันเดียวกัน

in Presentation** หากคุณต้องการโคลนสไลด์และจากนั้นใช้ในไฟล์พรีเซนเทชันเดียวกันแต่ตำแหน่งต่างออกไป ให้ใช้เมธอด InsertClone :

  1. สร้างอินสแตนซ์ของคลาส Presentation .
  2. สร้างอินสแตนซ์ของคลาสโดยอ้างอิงคอลเลกชัน Slides ที่เปิดเผยโดยอ็อบเจกต์ Presentation .
  3. เรียกเมธอด InsertClone ที่เปิดเผยโดยอ็อบเจกต์ ISlideCollection และส่งสไลด์ที่ต้องการโคลนพร้อมกับดัชนีตำแหน่งใหม่เป็นพารามิเตอร์ให้เมธอด InsertClone .
  4. เขียนพรีเซนเทชันที่แก้ไขแล้วเป็นไฟล์ PPTX

ในตัวอย่างด้านล่าง เราได้โคลนสไลด์ (อยู่ที่ดัชนีศูนย์ – ตำแหน่ง 1 – ของพรีเซนเทชัน) ไปยังดัชนี 1 – ตำแหน่ง 2 – ของพรีเซนเทชัน

โคลนสไลด์ที่ตำแหน่งสุดท้ายของพรีเซนเทชันอื่น

หากคุณต้องการโคลนสไลด์จากพรีเซนเทชันหนึ่งและใช้ในพรีเซนเทชันอื่นที่ตำแหน่งสุดท้ายของสไลด์ที่มีอยู่:

  1. สร้างอินสแตนซ์ของคลาส Presentation ที่ประกอบด้วยพรีเซนเทชันที่สไลด์จะถูกโคลนจาก
  2. สร้างอินสแตนซ์ของคลาส Presentation ที่ประกอบด้วยพรีเซนเทชันปลายทางที่จะเพิ่มสไลด์เข้าไป
  3. สร้างอินสแตนซ์ของคลาส ISlideCollection โดยอ้างอิงคอลเลกชัน Slides ที่เปิดเผยโดยอ็อบเจกต์ Presentation ของพรีเซนเทชันปลายทาง
  4. เรียกเมธอด AddClone ที่เปิดเผยโดยอ็อบเจกต์ ISlideCollection และส่งสไลด์จากพรีเซนเทชันต้นทางเป็นพารามิเตอร์ให้เมธอด AddClone .
  5. เขียนไฟล์พรีเซนเทชันปลายทางที่แก้ไขแล้ว

ในตัวอย่างด้านล่าง เราได้โคลนสไลด์ (จากดัชนีแรกของพรีเซนเทชันต้นทาง) ไปยังตำแหน่งสุดท้ายของพรีเซนเทชันปลายทาง

โคลนสไลด์ไปยังตำแหน่งอื่นในพรีเซนเทชันอื่น

หากคุณต้องการโคลนสไลด์จากพรีเซนเทชันหนึ่งและใช้ในพรีเซนเทชันอื่นที่ตำแหน่งเฉพาะ:

  1. สร้างอินสแตนซ์ของคลาส Presentation ที่มีพรีเซนเทชันต้นทางที่สไลด์จะถูกโคลนจาก
  2. สร้างอินสแตนซ์ของคลาส Presentation ที่มีพรีเซนเทชันที่จะเพิ่มสไลด์เข้าไป
  3. สร้างอินสแตนซ์ของคลาส ISlideCollection โดยอ้างอิงคอลเลกชัน Slides ที่เปิดเผยโดยอ็อบเจกต์ Presentation ของพรีเซนเทชันปลายทาง
  4. เรียกเมธอด InsertClone ที่เปิดเผยโดยอ็อบเจกต์ ISlideCollection และส่งสไลด์จากพรีเซนเทชันต้นทางพร้อมตำแหน่งที่ต้องการเป็นพารามิเตอร์ให้เมธอด InsertClone .
  5. เขียนไฟล์พรีเซนเทชันปลายทางที่แก้ไขแล้ว

ในตัวอย่างด้านล่าง เราได้โคลนสไลด์ (จากดัชนีศูนย์ของพรีเซนเทชันต้นทาง) ไปยังดัชนี 1 (ตำแหน่ง 2) ของพรีเซนเทชันปลายทาง

โคลนสไลด์ที่ตำแหน่งที่กำหนดในพรีเซนเทชันอื่น

หากคุณต้องการโคลนสไลด์พร้อมมาสเตอร์สไลด์จากพรีเซนเทชันหนึ่งและใช้ในพรีเซนเทชันอื่น คุณต้องโคลนมาสเตอร์สไลด์ที่ต้องการจากพรีเซนเทชันต้นทางไปยังพรีเซนเทชันปลายทางก่อน แล้วจึงใช้มาสเตอร์สไลด์นั้นในการโคลนสไลด์พร้อมมาสเตอร์สไลด์ เมธอด AddClone(ISlide, IMasterSlide) คาดหวังมาสเตอร์สไลด์จากพรีเซนเทชันปลายทาง ไม่ใช่จากพรีเซนเทชันต้นทาง เพื่อโคลนสไลด์พร้อมมาสเตอร์ กรุณาตามขั้นตอนต่อไปนี้:

  1. สร้างอินสแตนซ์ของคลาส Presentation ที่มีพรีเซนเทชันต้นทางที่สไลด์จะถูกโคลนจาก
  2. สร้างอินสแตนซ์ของคลาส Presentation ที่มีพรีเซนเทชันปลายทางที่สไลด์จะถูกโคลนไป
  3. เข้าถึงสไลด์ที่ต้องการโคลนพร้อมกับมาสเตอร์สไลด์
  4. สร้างอินสแตนซ์ของคลาส IMasterSlideCollection โดยอ้างอิงคอลเลกชัน Masters ที่เปิดเผยโดยอ็อบเจกต์ Presentation ของพรีเซนเทชันปลายทาง
  5. เรียกเมธอด AddClone ที่เปิดเผยโดยอ็อบเจกต์ IMasterSlideCollection และส่งมาสเตอร์จากไฟล์ PPTX ต้นทางที่จะโคลนเป็นพารามิเตอร์ให้เมธอด AddClone .
  6. สร้างอินสแตนซ์ของคลาส ISlideCollection โดยตั้งค่าอ้างอิงไปยังคอลเลกชัน Slides ที่เปิดเผยโดยอ็อบเจกต์ Presentation ของพรีเซนเทชันปลายทาง
  7. เรียกเมธอด AddClone ที่เปิดเผยโดยอ็อบเจกต์ ISlideCollection และส่งสไลด์จากพรีเซนเทชันต้นทางที่ต้องการโคลนและมาสเตอร์สไลด์เป็นพารามิเตอร์ให้เมธอด AddClone .
  8. เขียนไฟล์พรีเซนเทชันปลายทางที่แก้ไขแล้ว

ในตัวอย่างด้านล่าง เราได้โคลนสไลด์พร้อมมาสเตอร์ (อยู่ที่ดัชนีศูนย์ของพรีเซนเทชันต้นทาง) ไปยังตำแหน่งสุดท้ายของพรีเซนเทชันปลายทางโดยใช้มาสเตอร์จากสไลด์ต้นทาง

โคลนสไลด์ที่ตำแหน่งสุดท้ายของส่วนที่ระบุ

หากคุณต้องการโคลนสไลด์และจากนั้นใช้ในไฟล์พรีเซนเทชันเดียวกันแต่ในส่วนที่ต่างกัน ให้ใช้เมธอด 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ที่เลือก หากส่วนเป้าหมายไม่มีอยู่ ให้สร้างก่อนแล้วจึงย้ายสไลด์เข้าไป