ลบสไลด์จากงานนำเสนอใน C++
คำนำ
หากสไลด์ (หรือเนื้อหาในสไลด์) กลายเป็นข้อมูลซ้ำซ้อน คุณสามารถลบออกได้ Aspose.Slides มีคลาส Presentation ที่ห่อหุ้ม ISlideCollection ซึ่งเป็นคลังเก็บสไลด์ทั้งหมดในงานนำเสนอ โดยใช้ตัวชี้ (อ้างอิงหรือดัชนี) ของอ็อบเจกต์ ISlide ที่ทราบ คุณสามารถระบุสไลด์ที่ต้องการลบได้
ลบสไลด์โดยอ้างอิง
- สร้างอินสแตนซ์ของคลาส Presentation
- รับอ้างอิงของสไลด์ที่ต้องการลบผ่าน ID หรือ Index ของสไลด์นั้น
- ลบสไลด์ที่อ้างอิงไว้จากงานนำเสนอ
- บันทึกงานนำเสนอที่แก้ไขแล้ว
โค้ด C++ ด้านล่างแสดงวิธีการลบสไลด์โดยอ้างอิง:
// เส้นทางไปยังไดเรกทอรีเอกสาร
const String templatePath = L"../templates/AddSlides.pptx";
const String outPath = L"../out/RemoveSlidesByReference.pptx";
// สร้างอ็อบเจกต์ Presentation ซึ่งแสดงไฟล์งานนำเสนอ
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);
// เข้าถึงสไลด์ผ่านดัชนีในคอลเลกชันของสไลด์
SharedPtr<ISlide> slide = pres->get_Slides()->idx_get(0);
// ลบสไลด์ผ่านอ้างอิงของมัน
pres->get_Slides()->Remove(slide);
// บันทึกงานนำเสนอที่แก้ไขแล้ว
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
ลบสไลด์โดยดัชนี
- สร้างอินสแตนซ์ของคลาส Presentation
- ลบสไลด์จากงานนำเสนอผ่านตำแหน่งดัชนีของสไลด์นั้น
- บันทึกงานนำเสนอที่แก้ไขแล้ว
โค้ด C++ ด้านล่างแสดงวิธีการลบสไลด์โดยดัชนี:
// เส้นทางไปยังไดเรกทอรีเอกสาร
const String templatePath = L"../templates/AddSlides.pptx";
const String outPath = L"../out/RemoveSlidesByID.pptx";
// สร้างอ็อบเจกต์ Presentation ซึ่งแสดงไฟล์งานนำเสนอ
SharedPtr<Presentation> pres = MakeObject<Presentation>(templatePath);
// ลบสไลด์ผ่านดัชนีของสไลด์
pres->get_Slides()->RemoveAt(0);
// บันทึกงานนำเสนอที่แก้ไขแล้ว
pres->Save(outPath, Aspose::Slides::Export::SaveFormat::Pptx);
ลบ Layout Slides ที่ไม่ได้ใช้
Aspose.Slides มีเมธอด RemoveUnusedLayoutSlides() (จากคลาส Compress) เพื่อให้คุณลบ Layout Slides ที่ไม่ต้องการและไม่ได้ใช้ โค้ด C++ ด้านล่างแสดงวิธีการลบ Layout Slide จากงานนำเสนอ PowerPoint:
auto pres = System::MakeObject<Presentation>(u"pres.pptx");
LowCode::Compress::RemoveUnusedLayoutSlides(pres);
pres->Save(u"pres-out.pptx", SaveFormat::Pptx);
ลบ Master Slides ที่ไม่ได้ใช้
Aspose.Slides มีเมธอด RemoveUnusedMasterSlides() (จากคลาส Compress) เพื่อให้คุณลบ Master Slides ที่ไม่ต้องการและไม่ได้ใช้ โค้ด C++ ด้านล่างแสดงวิธีการลบ Master Slide จากงานนำเสนอ PowerPoint:
auto pres = System::MakeObject<Presentation>(u"pres.pptx");
LowCode::Compress::RemoveUnusedMasterSlides(pres);
pres->Save(u"pres-out.pptx", SaveFormat::Pptx);
FAQ
เกิดอะไรขึ้นกับดัชนีสไลด์หลังจากที่ฉันลบสไลด์?
หลังจากการลบ, collection จะทำการจัดดัชนีใหม่: สไลด์ต่อไปทุกสไลด์จะเลื่อนตำแหน่งซ้ายหนึ่งตำแหน่ง ทำให้หมายเลขดัชนีก่อนหน้าล้าสมัย หากคุณต้องการอ้างอิงที่คงที่ ให้ใช้ ID ถาวรของสไลด์แทนดัชนี
ID ของสไลด์ต่างจากดัชนีหรือไม่ และมันเปลี่ยนแปลงเมื่อสไลด์ใกล้เคียงถูกลบหรือไม่?
ใช่ ดัชนีเป็นตำแหน่งของสไลด์และจะเปลี่ยนแปลงเมื่อมีการเพิ่มหรือลบสไลด์ ส่วน ID ของสไลด์เป็นตัวระบุถาวรและจะไม่เปลี่ยนแปลงเมื่อสไลด์อื่นถูกลบ
การลบสไลด์ส่งผลต่อ Section ของสไลด์อย่างไร?
หากสไลด์เป็นส่วนหนึ่งของ Section, Section นั้นจะมีสไลด์น้อยลงหนึ่งสไลด์ โครงสร้างของ Section จะคงอยู่; หาก Section ว่างเปล่า คุณสามารถ remove or reorganize sections ตามต้องการ
บันทึกและความคิดเห็นที่แนบกับสไลด์จะเกิดอะไรขึ้นเมื่อสไลด์นั้นถูกลบ?
Notes และ comments ถูกผูกไว้กับสไลด์นั้นและจะถูกลบพร้อมกับสไลด์ เนื้อหาในสไลด์อื่นจะไม่ได้รับผลกระทบ
การลบสไลด์ต่างจากการทำความสะอาด Layout/Master ที่ไม่ได้ใช้อย่างไร?
การลบจะเอาสไลด์ปกติที่ต้องการออกจากชุดสไลด์ ส่วนการทำความสะอาด Layout/Master ที่ไม่ได้ใช้จะลบ Layout หรือ Master Slides ที่ไม่มีอ้างอิงใด ๆ อยู่ ลดขนาดไฟล์โดยไม่กระทบเนื้อหาสไลด์ที่เหลือ การดำเนินการทั้งสองจึงเสริมกัน: ปกติให้ลบสไลด์ก่อน แล้วจึงทำความสะอาด Layout/Master ที่ไม่ได้ใช้.