การเข้าถึงสไลด์ของงานนำเสนอใน .NET

ภาพรวม

บทความนี้อธิบายวิธีการเข้าถึงและจัดการสไลด์ในงานนำเสนอโดยใช้ Aspose.Slides แสดงวิธีการดึงสไลด์ตามดัชนีที่เริ่มจากศูนย์จากคอลเลกชัน Slides และวิธีการเข้าถึงสไลด์ตาม ID ที่ไม่ซ้ำกันโดยใช้เมธอด GetSlideById

คุณยังจะได้เรียนรู้วิธีการเปลี่ยนตำแหน่งของสไลด์โดยตั้งค่า property SlideNumber และวิธีการกำหนดหมายเลขสไลด์เริ่มต้นของงานนำเสนอด้วย property FirstSlideNumber ตัวอย่างจะแสดงการโหลดงานนำเสนอ, การรับอ้างอิงสไลด์, การอัปเดตลำดับหรือหมายเลขสไลด์, และการบันทึกงานนำเสนอที่แก้ไขแล้ว

เข้าถึงสไลด์โดยดัชนี

สไลด์ทั้งหมดในงานนำเสนอจะถูกจัดเรียงเป็นตัวเลขตามตำแหน่งสไลด์โดยเริ่มจาก 0 สไลด์แรกสามารถเข้าถึงได้ผ่านดัชนี 0; สไลด์ที่สองผ่านดัชนี 1; เป็นต้น

คลาส Presentation ซึ่งเป็นตัวแทนไฟล์งานนำเสนอ จะเปิดเผยสไลด์ทั้งหมดเป็นคอลเลกชัน ISlideCollection (คอลเลกชันของอ็อบเจ็กต์ ISlide ) โค้ด C# นี้แสดงวิธีการเข้าถึงสไลด์ผ่านดัชนีของมัน:

 // สร้างอ็อบเจกต์ Presentation ที่แทนไฟล์งานนำเสนอ
 Presentation presentation = new Presentation("AccessSlides.pptx");

 // ดึงอ้างอิงสไลด์ผ่านดัชนีของมัน
 ISlide slide = presentation.Slides[0];

เข้าถึงสไลด์โดย ID

แต่ละสไลด์ในงานนำเสนอมี ID ที่ไม่ซ้ำกันเชื่อมโยงกับมัน คุณสามารถใช้เมธอด GetSlideById (ที่เปิดเผยโดยคลาส Presentation) เพื่อระบุ ID นั้น โค้ด C# นี้แสดงวิธีการให้ ID สไลด์ที่ถูกต้องและเข้าถึงสไลด์ผ่านเมธอด GetSlideById:

 // สร้างอ็อบเจกต์ Presentation ที่แทนไฟล์งานนำเสนอ
 Presentation presentation = new Presentation("AccessSlides.pptx");

 // รับค่า ID ของสไลด์
 uint id = presentation.Slides[0].SlideId;

 // เข้าถึงสไลด์ผ่าน ID ของมัน
 IBaseSlide slide = presentation.GetSlideById(id);

เปลี่ยนตำแหน่งสไลด์

Aspose.Slides ให้คุณเปลี่ยนตำแหน่งของสไลด์ ตัวอย่างเช่น คุณสามารถกำหนดให้สไลด์แรกกลายเป็นสไลด์ที่สองได้

  1. สร้างอินสแตนซ์ของคลาส Presentation
  2. รับอ้างอิงของสไลด์ (ตำแหน่งที่คุณต้องการเปลี่ยน) ผ่านดัชนีของมัน
  3. ตั้งค่าตำแหน่งใหม่ให้สไลด์ผ่าน property SlideNumber
  4. บันทึกงานนำเสนอที่แก้ไขแล้ว

โค้ด C# นี้แสดงการดำเนินการที่สไลด์ที่ตำแหน่ง 1 ถูกย้ายไปยังตำแหน่ง 2:

 // สร้างอ็อบเจกต์ Presentation ที่แทนไฟล์งานนำเสนอ
 using (Presentation pres = new Presentation("ChangePosition.pptx"))
 {
     // ดึงสไลด์ที่ตำแหน่งจะถูกเปลี่ยน
     ISlide sld = pres.Slides[0];

     // ตั้งค่าตำแหน่งใหม่สำหรับสไลด์
     sld.SlideNumber = 2;

     // บันทึกงานนำเสนอที่แก้ไขแล้ว
     pres.Save("Aspose_out.pptx", SaveFormat.Pptx);
 }

สไลด์แรกกลายเป็นสไลด์ที่สอง; สไลด์ที่สองกลายเป็นสไลด์แรก เมื่อคุณเปลี่ยนตำแหน่งของสไลด์ สไลด์อื่นๆ จะถูกปรับอัตโนมัติ

กำหนดหมายเลขสไลด์

โดยใช้ property FirstSlideNumber (ที่เปิดเผยโดยคลาส Presentation) คุณสามารถกำหนดหมายเลขใหม่ให้สไลด์แรกในงานนำเสนอ การดำเนินการนี้จะทำให้หมายเลขสไลด์อื่นๆ ถูกคำนวณใหม่

  1. สร้างอินสแตนซ์ของคลาส Presentation
  2. รับหมายเลขสไลด์
  3. ตั้งค่าหมายเลขสไลด์
  4. บันทึกงานนำเสนอที่แก้ไขแล้ว

โค้ด C# นี้แสดงการดำเนินการที่กำหนดหมายเลขสไลด์แรกเป็น 10:

 // สร้างอ็อบเจกต์ Presentation ที่แทนไฟล์งานนำเสนอ
 using (Presentation presentation = new Presentation("HelloWorld.pptx"))
 {
     // ดึงหมายเลขสไลด์
     int firstSlideNumber = presentation.FirstSlideNumber;

     // ตั้งค่าหมายเลขสไลด์
     presentation.FirstSlideNumber=10;
     
     // บันทึกงานนำเสนอที่แก้ไขแล้ว
     presentation.Save("Set_Slide_Number_out.pptx", SaveFormat.Pptx);
 }

หากคุณต้องการข้ามสไลด์แรก คุณสามารถเริ่มนับหมายเลขจากสไลด์ที่สอง (และซ่อนการนับเลขสำหรับสไลด์แรก) ได้ดังนี้:

using (var presentation = new Presentation())
{
    var layoutSlide = presentation.LayoutSlides.GetByType(SlideLayoutType.Blank);
    presentation.Slides.AddEmptySlide(layoutSlide);
    presentation.Slides.AddEmptySlide(layoutSlide);
    presentation.Slides.AddEmptySlide(layoutSlide);

    // กำหนดหมายเลขสำหรับสไลด์แรกของงานนำเสนอ
    presentation.FirstSlideNumber = 0;

    // แสดงหมายเลขสไลด์สำหรับสไลด์ทั้งหมด
    presentation.HeaderFooterManager.SetAllSlideNumbersVisibility(true);

    // ซ่อนหมายเลขสไลด์สำหรับสไลด์แรก
    presentation.Slides[0].HeaderFooterManager.SetSlideNumberVisibility(false);

    // บันทึกงานนำเสนอที่แก้ไขแล้ว
    presentation.Save("output.pptx", SaveFormat.Pptx);
}

คำถามที่พบบ่อย

หมายเลขสไลด์ที่ผู้ใช้เห็นตรงกับดัชนีที่เริ่มจากศูนย์ของคอลเลกชันหรือไม่?

หมายเลขที่แสดงบนสไลด์สามารถเริ่มจากค่าที่กำหนดเอง (เช่น 10) และไม่จำเป็นต้องตรงกับดัชนี; ความสัมพันธ์นี้ถูกควบคุมโดยการตั้งค่า first slide number ของงานนำเสนอ

สไลด์ที่ซ่อนอยู่มีผลต่อการจัดดัชนีหรือไม่?

ใช่ สไลด์ที่ซ่อนอยู่ยังคงอยู่ในคอลเลกชันและถูกนับในการจัดดัชนี; “hidden” หมายถึงการแสดงผล ไม่ได้หมายถึงตำแหน่งในคอลเลกชัน

ดัชนีของสไลด์เปลี่ยนแปลงเมื่อมีการเพิ่มหรือลบสไลด์อื่นหรือไม่?

ใช่ ดัชนีจะสะท้อนลำดับปัจจุบันของสไลด์เสมอและจะถูกคำนวณใหม่เมื่อทำการแทรก, ลบ, หรือย้ายสไลด์