โคลนสไลด์ PowerPoint ใน Python
บทนำ
การโคลนคือกระบวนการทำสำเนาแบบตรงหรือจำลองของบางอย่าง Aspose.Slides ยังอนุญาตให้คุณคัดลอก (โคลน) สไลด์ใดก็ได้แล้วแทรกสไลด์ที่โคลนแล้วเข้าไปในงานนำเสนอปัจจุบันหรือในงานนำเสนออื่นที่เปิดอยู่ การโคลนสไลด์จะสร้างสไลด์ใหม่ที่นักพัฒนาสามารถแก้ไขได้โดยไม่กระทบกับสไลด์ต้นฉบับ มีหลายวิธีในการโคลนสไลด์:
- โคลนที่ส่วนท้ายของงานนำเสนอ
- โคลนที่ตำแหน่งอื่นภายในงานนำเสนอ
- โคลนที่ส่วนท้ายของงานนำเสนออื่น
- โคลนที่ตำแหน่งอื่นในงานนำเสนออื่น
- โคลนที่ตำแหน่งเฉพาะในงานนำเสนออื่น
ใน Aspose.Slides for Python via .NET, the คอลเลกชันสไลด์ ที่เปิดเผยโดยอ็อบเจ็กต์ Presentation ให้เมธอด add_clone และ insert_clone เพื่อทำการโคลนสไลด์ประเภทเหล่านี้
โคลนที่ส่วนท้ายภายในงานนำเสนอเดียวกัน
หากคุณต้องการโคลนสไลด์ภายในงานนำเสนอเดียวกันและแทรกต่อที่ส่วนท้ายของสไลด์ที่มีอยู่ ให้ใช้เมธอด add_clone ทำตามขั้นตอนต่อไปนี้:
- สร้างอินสแตนซ์ของคลาส Presentation
- ดึงคอลเลกชันสไลด์จากอ็อบเจ็กต์ Presentation
- เรียกเมธอด
add_cloneบน SlideCollection โดยส่งสไลด์ที่ต้องการโคลน - บันทึกงานนำเสนอที่แก้ไขแล้ว
ในตัวอย่างด้านล่าง สไลด์แรก (ดัชนี 0) จะถูกโคลนและแทรกต่อที่ส่วนท้ายของงานนำเสนอ
import aspose.slides as slides
# สร้างอินสแตนซ์ของคลาส Presentation เพื่อแทนไฟล์งานนำเสนอ
with slides.Presentation("CloneWithinSamePresentationToEnd.pptx") as presentation:
# โคลนสไลด์ที่ต้องการไปยังส่วนท้ายของคอลเลกชันสไลด์ในงานนำเสนอเดียวกัน
presentation.slides.add_clone(presentation.slides[0])
# บันทึกงานนำเสนอที่แก้ไขแล้วลงดิสก์
presentation.save("Aspose_CloneWithinSamePresentationToEnd_out.pptx", slides.export.SaveFormat.PPTX)
โคลนไปยังตำแหน่งเฉพาะภายในงานนำเสนอเดียวกัน
หากคุณต้องการโคลนสไลด์ภายในงานนำเสนอเดียวกันและวางไว้ที่ตำแหน่งอื่น ให้ใช้เมธอด insert_clone:
- สร้างอินสแตนซ์ของคลาส Presentation
- ดึงคอลเลกชันสไลด์จากอ็อบเจ็กต์ Presentation
- เรียกเมธอด
insert_cloneบน SlideCollection โดยส่งสไลด์ที่ต้องการโคลนและดัชนีเป้าหมายสำหรับตำแหน่งใหม่ - บันทึกงานนำเสนอที่แก้ไขแล้ว
ในตัวอย่างด้านล่าง สไลด์ที่ดัชนี 0 (ตำแหน่ง 1) จะถูกโคลนไปยังดัชนี 1 (ตำแหน่ง 2) ภายในงานนำเสนอเดียวกัน
import aspose.slides as slides
# สร้างอินสแตนซ์ของคลาส Presentation เพื่อแทนไฟล์งานนำเสนอ
with slides.Presentation("CloneWithInSamePresentation.pptx") as presentation:
# โคลนสไลด์ที่ต้องการไปยังตำแหน่งที่ระบุ (ดัชนี) ภายในงานนำเสนอเดียวกัน
presentation.slides.insert_clone(2, presentation.slides[1])
# บันทึกงานนำเสนอที่แก้ไขแล้วลงดิสก์
presentation.save("Aspose_CloneWithInSamePresentation_out.pptx", slides.export.SaveFormat.PPTX)
โคลนที่ส่วนท้ายของงานนำเสนออื่น
หากคุณต้องการโคลนสไลด์จากงานนำเสนอหนึ่งและแทรกต่อที่ส่วนท้ายของงานนำเสนออีกอันหนึ่ง:
- สร้างอินสแตนซ์ของคลาส Presentation สำหรับงานนำเสนอแหล่งที่ม (ที่มีสไลด์ที่จะโคลน)
- สร้างอินสแตนซ์ของคลาส Presentation สำหรับงานนำเสนอปลายทาง (ที่สไลด์จะถูกเพิ่ม)
- ดึงคอลเลกชันสไลด์จากงานนำเสนอปลายทาง
- เรียก
add_cloneบน SlideCollection ของปลายทางโดยส่งสไลด์จากงานนำเสนอแหล่งที่มา - บันทึกงานนำเสนอปลายทางที่แก้ไขแล้ว
ในตัวอย่างด้านล่าง สไลด์ที่ดัชนี 0 ในงานนำเสนอแหล่งที่มาถูกโคลนไปยังส่วนท้ายของงานนำเสนอปลายทาง
import aspose.slides as slides
# สร้างอินสแตนซ์ของคลาส Presentation เพื่อแทนไฟล์งานนำเสนอแหล่งที่มา.
with slides.Presentation("CloneAtEndOfAnother.pptx") as source_presentation:
# สร้างอินสแตนซ์ของคลาส Presentation สำหรับ PPTX ปลายทาง (ที่สไลด์จะถูกโคลน).
with slides.Presentation() as target_presentation:
# โคลนสไลด์ที่ต้องการจากงานนำเสนอแหล่งที่มาไปยังส่วนท้ายของคอลเลกชันสไลด์ในงานนำเสนอปลายทาง.
target_presentation.slides.add_clone(source_presentation.slides[0])
# บันทึกงานนำเสนอปลายทางลงดิสก์.
target_presentation.save("Aspose2_out.pptx", slides.export.SaveFormat.PPTX)
โคลนไปยังตำแหน่งเฉพาะในงานนำเสนออื่น
หากคุณต้องการโคลนสไลด์จากงานนำเสนอหนึ่งและแทรกเข้าไปในงานนำเสนออีกอันที่ตำแหน่งเฉพาะ:
- สร้างอินสแตนซ์ของคลาส Presentation สำหรับงานนำเสนอแหล่งที่ม (ที่มีสไลด์ที่จะโคลน)
- สร้างอินสแตนซ์ของคลาส Presentation สำหรับงานนำเสนอปลายทาง (ที่สไลด์จะถูกเพิ่ม)
- ดึงคอลเลกชันสไลด์จากงานนำเสนอปลายทาง
- เรียกเมธอด
insert_cloneบน SlideCollection ของปลายทางโดยส่งสไลด์จากแหล่งที่มาและดัชนีเป้าหมายที่ต้องการ - บันทึกงานนำเสนอปลายทางที่แก้ไขแล้ว
ในตัวอย่างด้านล่าง สไลด์ที่ดัชนี 0 ในงานนำเสนอแหล่งที่มาถูกโคลนไปยังดัชนี 1 (ตำแหน่ง 2) ในงานนำเสนอปลายทาง
import aspose.slides as slides
# สร้างอินสแตนซ์ของคลาส Presentation เพื่อแทนไฟล์งานนำเสนอแหล่งที่มา.
with slides.Presentation("CloneAtEndOfAnother.pptx") as source_presentation:
# สร้างอินสแตนซ์ของคลาส Presentation สำหรับ PPTX ปลายทาง (ที่สไลด์จะถูกโคลน).
with slides.Presentation("Aspose2_out.pptx") as target_presentation:
# แทรกสำเนาของสไลด์แรกจากแหล่งที่มาไปยังดัชนี 2 ในงานนำเสนอปลายทาง.
target_presentation.slides.insert_clone(2, source_presentation.slides[0])
# บันทึกงานนำเสนอปลายทางลงดิสก์.
target_presentation.save("Aspose3_out.pptx", slides.export.SaveFormat.PPTX)
โคลนสไลด์พร้อมมาสเตอร์สไลด์เข้าไปในงานนำเสนออื่น
หากคุณต้องการโคลนสไลด์ พร้อมมาสเตอร์ จากงานนำเสนอหนึ่งและใช้ในงานนำเสนออื่น ให้โคลนมาสเตอร์สไลด์ที่ต้องการจากงานนำเสนอแหล่งที่มานำเข้ามาในงานนำเสนอปลายทางก่อน จากนั้นใช้มาสเตอร์ปลายทางเมื่อโคลนสไลด์ เมธอด add_clone(Slide, MasterSlide) คาดหวัง มาสเตอร์สไลด์จากงานนำเสนอปลายทาง ไม่ใช่จากแหล่งที่มา
ขั้นตอนการโคลนสไลด์พร้อมมาสเตอร์:
- สร้างอินสแตนซ์ของคลาส Presentation สำหรับงานนำเสนอแหล่งที่ม (ที่มีสไลด์ที่จะโคลน)
- สร้างอินสแตนซ์ของคลาส Presentation สำหรับงานนำเสนอปลายทาง
- เข้าถึงสไลด์ต้นฉบับที่ต้องการโคลนและมาสเตอร์สไลด์ของมัน
- ดึง MasterSlideCollection จากคอลเลกชันมาสเตอร์ของงานนำเสนอปลายทาง
- เรียก
add_cloneบน MasterSlideCollection ของปลายทางโดยส่งมาสเตอร์ต้นฉบับเพื่อโคลนเข้าสู่ปลายทาง - ดึง SlideCollection จากคอลเลกชันสไลด์ของงานนำเสนอปลายทาง
- เรียก
add_cloneบน SlideCollection ของปลายทางโดยส่งสไลด์ต้นฉบับและมาสเตอร์ปลายทางที่โคลนแล้ว - บันทึกงานนำเสนอปลายทางที่แก้ไขแล้ว
ในตัวอย่างด้านล่าง สไลด์ที่ดัชนี 0 ในงานนำเสนอแหล่งที่มาถูกโคลนไปยังส่วนท้ายของงานนำเสนอปลายทางโดยใช้มาสเตอร์ที่โคลนจากแหล่งที่มา
import aspose.slides as slides
# สร้างอินสแตนซ์ของคลาส Presentation เพื่อแทนไฟล์งานนำเสนอแหล่งที่มา.
with slides.Presentation("CloneToAnotherPresentationWithMaster.pptx") as source_presentation:
# สร้างอินสแตนซ์ของคลาส Presentation สำหรับงานนำเสนอปลายทางที่สไลด์จะถูกโคลน.
with slides.Presentation() as target_presentation:
# ดึงสไลด์แรกจากงานนำเสนอแหล่งที่มา.
source_slide = source_presentation.slides[0]
# ดึงมาสเตอร์สไลด์ที่ใช้โดยสไลด์แรก.
source_master = source_slide.layout_slide.master_slide
# โคลนมาสเตอร์สไลด์เข้าสู่คอลเลกชันมาสเตอร์ของงานนำเสนอปลายทาง.
cloned_master = target_presentation.masters.add_clone(source_master)
# โคลนสไลด์จากงานนำเสนอแหล่งที่มาไปยังส่วนท้ายของงานนำเสนอปลายทางโดยใช้มาสเตอร์ที่โคลน.
target_presentation.slides.add_clone(source_slide, cloned_master, True)
# บันทึกงานนำเสนอปลายทางลงดิสก์.
target_presentation.save("CloneToAnotherPresentationWithMaster_out.pptx", slides.export.SaveFormat.PPTX)
โคลนที่ส่วนท้ายในส่วนที่ระบุ
ด้วย Aspose.Slides for Python via .NET คุณสามารถโคลนสไลด์จากส่วนหนึ่งของงานนำเสนอและแทรกเข้าไปยังส่วนอื่นภายในงานนำเสนอเดียวกันได้ ใช้วิธี add_clone(Slide, Section) ของคลาส SlideCollection เพื่อทำเช่นนั้น
ตัวอย่าง Python ด้านล่างแสดงวิธีโคลนสไลด์และแทรกคลอนเข้าไปในส่วนที่ระบุ:
import aspose.slides as slides
# สร้างงานนำเสนอเปล่าใหม่.
with slides.Presentation() as presentation:
# เพิ่มสไลด์เปล่าตามเค้าโครงของสไลด์แรก.
slide = presentation.slides.add_empty_slide(presentation.slides[0].layout_slide)
# เพิ่มรูปทรงวงรีลงในสไลด์ใหม่; สไลด์นี้จะถูกโคลนในภายหลัง.
slide.shapes.add_auto_shape(slides.ShapeType.ELLIPSE, 150, 150, 100, 100)
# เพิ่มสไลด์เปล่าอีกหนึ่งตามเค้าโครงของสไลด์แรก.
slide2 = presentation.slides.add_empty_slide(presentation.slides[0].layout_slide)
# สร้างส่วนชื่อ "Section2" ที่เริ่มต้นที่ slide2.
section = presentation.sections.add_section("Section2", slide2)
# โคลนสไลด์ที่สร้างก่อนหน้านี้เข้าไปในส่วน "Section2".
presentation.slides.add_clone(slide, section)
# บันทึกงานนำเสนอเป็นไฟล์ PPTX.
presentation.save("presentation.pptx", slides.export.SaveFormat.PPTX)
คำถามที่พบบ่อย
บันทึกผู้พูดและความคิดเห็นของผู้ตรวจสอบจะถูกโคลนหรือไม่?
ใช่. หน้าโน้ตและความคิดเห็นการตรวจสอบจะรวมอยู่ในคลอน หากคุณไม่ต้องการให้มันอยู่ ให้ ลบออก หลังจากแทรก
แผนภูมิและแหล่งข้อมูลของมันถูกจัดการอย่างไร?
วัตถุแผนภูมิ การจัดรูปแบบและข้อมูลที่ฝังอยู่จะถูกคัดลอก หากแผนภูมิมีการเชื่อมโยงกับแหล่งภายนอก (เช่น สมุดงานที่ฝังด้วย OLE) การเชื่อมโยงนั้นจะถูกเก็บไว้เป็น OLE object หลังจากย้ายระหว่างไฟล์ ให้ตรวจสอบความพร้อมใช้งานของข้อมูลและพฤติกรรมการรีเฟรช
ฉันสามารถควบคุมตำแหน่งการแทรกและส่วนสำหรับคลอนได้หรือไม่?
ได้. คุณสามารถแทรกคลอนที่ดัชนีสไลด์เฉพาะและวางเข้าไปใน section ที่เลือก หากส่วนเป้าหมายไม่มีอยู่ให้สร้างก่อนแล้วค่อยย้ายสไลด์เข้าไปในส่วนนั้น