ลบสไลด์จากงานนำเสนอใน C++

คำนำ

หากสไลด์ (หรือเนื้อหาในสไลด์) กลายเป็นข้อมูลซ้ำซ้อน คุณสามารถลบออกได้ Aspose.Slides มีคลาส Presentation ที่ห่อหุ้ม ISlideCollection ซึ่งเป็นคลังเก็บสไลด์ทั้งหมดในงานนำเสนอ โดยใช้ตัวชี้ (อ้างอิงหรือดัชนี) ของอ็อบเจกต์ ISlide ที่ทราบ คุณสามารถระบุสไลด์ที่ต้องการลบได้

ลบสไลด์โดยอ้างอิง

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

โค้ด 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);

ลบสไลด์โดยดัชนี

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

โค้ด 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 ที่ไม่ได้ใช้.