เข้าถึงสไลด์ในงานนำเสนอด้วย Python
Overview
บทความนี้อธิบายวิธีเข้าถึงสไลด์เฉพาะในงานนำเสนอ PowerPoint ด้วย Aspose.Slides for Python แสดงวิธีเปิดงานนำเสนอ อ้างอิงสไลด์ด้วยดัชนีหรือด้วย ID ที่ไม่ซ้ำกัน และอ่านข้อมูลพื้นฐานของสไลด์ที่จำเป็นสำหรับการนำทางภายในไฟล์ ด้วยเทคนิคเหล่านี้ คุณสามารถค้นหาสไลด์ที่ต้องการตรวจสอบหรือประมวลผลได้อย่างแม่นยำ
Access a Slide by Index
สไลด์ในงานนำเสนอจะถูกจัดเรียงตามตำแหน่งโดยเริ่มจาก 0 สไลด์แรกมีดัชนี 0 สไลด์ที่สองมีดัชนี 1 และต่อไปเช่นนั้น
คลาส Presentation (ซึ่งแทนไฟล์งานนำเสนอ) เปิดเผยสไลด์ผ่าน SlideCollection ของอ็อบเจกต์ Slide
โค้ด Python ด้านล่างแสดงวิธีเข้าถึงสไลด์ตามดัชนีของมัน:
import aspose.slides as slides
# สร้าง Presentation ที่แสดงถึงไฟล์งานนำเสนอ
with slides.Presentation("sample.pptx") as presentation:
# รับสไลด์ตามดัชนีของมัน
slide = presentation.slides[0]
Access a Slide by ID
แต่ละสไลด์ในงานนำเสนอจะมี ID ที่ไม่ซ้ำกัน คุณสามารถใช้เมธอด get_slide_by_id (ซึ่งเปิดเผยโดยคลาส Presentation) เพื่อระบุ ID นั้น
โค้ด Python ด้านล่างแสดงวิธีระบุ ID สไลด์ที่ถูกต้องและเข้าถึงสไลด์นั้นผ่านเมธอด get_slide_by_id:
import aspose.slides as slides
# สร้าง Presentation ที่แสดงถึงไฟล์งานนำเสนอ
with slides.Presentation("sample.pptx") as presentation:
# รับ ID ของสไลด์
id = presentation.slides[0].slide_id
# เข้าถึงสไลด์โดยใช้ ID ของมัน
slide = presentation.get_slide_by_id(id)
Change a Slide’s Position
Aspose.Slides อนุญาตให้คุณเปลี่ยนตำแหน่งของสไลด์ ตัวอย่างเช่น คุณสามารถทำให้สไลด์แรกกลายเป็นสไลด์ที่สอง
- สร้างอินสแตนซ์ของคลาส Presentation
- รับอ้างอิงถึงสไลด์ที่ต้องการเปลี่ยนตำแหน่งตามดัชนีของมัน
- ตั้งค่าตำแหน่งใหม่สำหรับสไลด์ผ่านคุณสมบัติ slide_number
- บันทึกงานนำเสนอที่แก้ไขแล้ว
โค้ด Python ด้านล่างย้ายสไลด์จากตำแหน่ง 1 ไปยังตำแหน่ง 2:
import aspose.slides as slides
# สร้างอ็อบเจกต์ Presentation ที่แสดงถึงไฟล์งานนำเสนอ
with slides.Presentation("sample.pptx") as presentation:
# รับสไลด์ที่ตำแหน่งจะถูกเปลี่ยน
slide = presentation.slides[0]
# ตั้งค่าตำแหน่งใหม่ให้กับสไลด์
slide.slide_number = 2
# บันทึกงานนำเสนอที่แก้ไขแล้ว
presentation.save("slide_number.pptx", slides.export.SaveFormat.PPTX)
สไลด์แรกจะกลายเป็นสไลด์ที่สอง; สไลด์ที่สองจะกลายเป็นสไลด์แรก เมื่อคุณเปลี่ยนตำแหน่งของสไลด์ สไลด์อื่น ๆ จะถูกปรับอัตโนมัติ
Set the Slide Number
โดยใช้คุณสมบัติ first_slide_number (ที่เปิดเผยโดยคลาส Presentation) คุณสามารถกำหนดหมายเลขใหม่ให้กับสไลด์แรกในงานนำเสนอ การดำเนินการนี้จะทำให้หมายเลขสไลด์อื่น ๆ ถูกคำนวณใหม่
- สร้างอินสแตนซ์ของคลาส Presentation
- ตั้งค่าหมายเลขสไลด์
- บันทึกงานนำเสนอที่แก้ไขแล้ว
โค้ด Python ด้านล่างแสดงตัวอย่างการตั้งหมายเลขสไลด์แรกเป็น 10:
import aspose.slides as slides
# สร้างอ็อบเจกต์ Presentation ที่แสดงถึงไฟล์งานนำเสนอ
with slides.Presentation("sample.pptx") as presentation:
# ตั้งค่าหมายเลขสไลด์
presentation.first_slide_number = 10
# บันทึกงานนำเสนอที่แก้ไขแล้ว
presentation.save("first_slide_number.pptx", slides.export.SaveFormat.PPTX)
ถ้าต้องการข้ามสไลด์แรก คุณสามารถเริ่มนับหมายเลขจากสไลด์ที่สอง (และซ่อนหมายเลขบนสไลด์แรก) ได้ดังนี้:
import aspose.slides as slides
with slides.Presentation() as presentation:
layout_slide = presentation.layout_slides.get_by_type(slides.SlideLayoutType.BLANK)
presentation.slides.add_empty_slide(layout_slide)
presentation.slides.add_empty_slide(layout_slide)
presentation.slides.add_empty_slide(layout_slide)
# ตั้งค่าหมายเลขสำหรับสไลด์แรกในงานนำเสนอ.
presentation.first_slide_number = 0
# แสดงหมายเลขสไลด์สำหรับสไลด์ทั้งหมด.
presentation.header_footer_manager.set_all_slide_numbers_visibility(True)
# ซ่อนหมายเลขสไลด์บนสไลด์แรก.
presentation.slides[0].header_footer_manager.set_slide_number_visibility(False)
# บันทึกงานนำเสนอที่แก้ไขแล้ว.
presentation.save("first_slide_number.pptx", slides.export.SaveFormat.PPTX)
FAQ
Does the slide number a user sees match the collection’s zero-based index?
หมายเลขที่แสดงบนสไลด์อาจเริ่มจากค่าใดค่าหนึ่ง (เช่น 10) และไม่จำเป็นต้องตรงกับดัชนี; ความสัมพันธ์นี้ถูกควบคุมโดยการตั้งค่า first slide number ของงานนำเสนอ
Do hidden slides affect indexing?
ใช่ สไลด์ที่ซ่อนอยู่ยังคงอยู่ในคอลเลกชันและถูกนับในการระดัชนี; “hidden” หมายถึงการแสดงผล ไม่ได้หมายถึงตำแหน่งในคอลเลกชัน
Does a slide’s index change when other slides are added or removed?
ใช่ ดัชนีจะสะท้อนลำดับปัจจุบันของสไลด์เสมอและจะถูกคำนวณใหม่เมื่อทำการแทรก, ลบ หรือย้ายสไลด์