จัดการแท็กและข้อมูลกำหนดเองในงานนำเสนอด้วย .NET

ภาพรวม

บทความนี้อธิบายว่า Aspose.Slides ทำงานกับแท็กและข้อมูลกำหนดเองในงานนำเสนอ PowerPoint อย่างไร โดยสรุปสั้น ๆ ว่าข้อมูลถูกจัดเก็บในไฟล์ PPTX อย่างไร พร้อมระบุว่าข้อมูลที่เฉพาะเจาะจงต่อการนำเสนออาจมีอยู่ในรูปแบบแท็กและส่วน Custom XML และอธิบายว่าแท็กเป็นคู่คีย์‑ค่าแบบสตริง

บทความยังแสดงวิธีการอ่านค่าของแท็กและวิธีการเพิ่มแท็กให้กับงานนำเสนอ สไลด์หนึ่งสไลด์ หรือรูปร่างหนึ่ง นอกจากนี้ยังครอบคลุมงานจัดการแท็กทั่วไป เช่น การลบแท็กทั้งหมด การลบแท็กตามชื่อ และการดึงรายการชื่อแท็ก

การจัดเก็บข้อมูลในไฟล์งานนำเสนอ

ไฟล์ PPTX — ไฟล์ที่มีนามสกุล .pptx — ถูกจัดเก็บในรูปแบบ PresentationML ซึ่งเป็นส่วนหนึ่งของสเปค Office Open XML สเปค Office Open XML นิยามโครงสร้างของข้อมูลที่อยู่ในงานนำเสนอ

โดยที่ สไลด์ เป็นหนึ่งในองค์ประกอบของงานนำเสนอ slide part จะบรรจุเนื้อหาของสไลด์เดียว slide part สามารถมีความสัมพันธ์โดยตรงกับหลายส่วน — เช่น User Defined Tags — ตามที่ ISO/IEC 29500 กำหนด

ข้อมูลกำหนดเอง (เฉพาะต่อการนำเสนอ) หรือของผู้ใช้สามารถมีอยู่ในรูปแบบแท็ก (ITagCollection) และ CustomXmlParts (ICustomXmlPartCollection)

รับค่าแท็ก

ใน Slides แท็กสอดคล้องกับคุณสมบัติ IDocumentProperties.Keywords ตัวอย่างโค้ดนี้แสดงวิธีดึงค่าของแท็กด้วย Aspose.Slides for .NET สำหรับ Presentation:

using (Presentation pres = new Presentation("pres.pptx"))
{
   string keywords = pres.DocumentProperties.Keywords;
}

เพิ่มแท็กให้กับงานนำเสนอ

Aspose.Slides ให้คุณเพิ่มแท็กให้กับงานนำเสนอ แท็กโดยทั่วไปประกอบด้วยสองส่วน:

  • ชื่อของคุณสมบัติกำหนดเอง - MyTag
  • ค่าของคุณสมบัติกำหนดเอง - My Tag Value

หากคุณต้องการจัดประเภทงานนำเสนอบางรายการตามกฎหรือคุณสมบัติใด ๆ คุณอาจได้รับประโยชน์จากการเพิ่มแท็กให้กับงานเหล่านั้น ตัวอย่างเช่น หากต้องการจัดกลุ่มงานนำเสนอจากประเทศในอเมริกาเหนือทั้งหมด คุณสามารถสร้างแท็ก “North American” แล้วกำหนดค่าเป็นประเทศที่เกี่ยวข้อง (สหรัฐอเมริกา, เม็กซิโก, แคนาดา)

ตัวอย่างโค้ดนี้แสดงวิธีเพิ่มแท็กให้กับ Presentation ด้วย Aspose.Slides for .NET:

using (Presentation pres = new Presentation("pres.pptx"))
{
   ITagCollection tags = pres.CustomData.Tags;
   pres.CustomData.Tags["MyTag"] = "My Tag Value";
}

แท็กยังสามารถกำหนดให้กับ Slide ได้ด้วย:

using(Presentation pres = new Presentation())
{
    ISlide slide = pres.Slides[0];
    slide.CustomData.Tags["tag"] = "value";
}

หรือกำหนดให้กับ Shape ใด ๆ ก็ได้:

using(Presentation pres = new Presentation())
{
    ISlide slide = pres.Slides[0];
    IAutoShape shape = slide.Shapes.AddAutoShape(ShapeType.Rectangle, 10, 10, 100, 50);
    shape.TextFrame.Text = "My text";
    shape.CustomData.Tags["tag"] = "value";
}

ข้อจำกัด

แท็กที่เพิ่มผ่านคอลเลกชัน CustomData.Tags จะถูกเก็บไว้เฉพาะในไฟล์ PowerPoint เท่านั้น พวกมัน ไม่ ถูกถ่ายโอนไปยังโครงสร้างแท็กของ PDF เมื่อทำการส่งออกงานนำเสนอเป็น PDF ดังนั้น ตัวระบุกำหนดเองที่บันทึกเป็นแท็กจะไม่สามารถดึงคืนจาก PDF ที่มีแท็กได้

วิธีแก้: คุณสามารถเก็บตัวระบุกำหนดเองไว้ใน Alt Text ของอ็อบเจกต์ (เช่น shape.AlternativeText = "MyId"). หลังจากส่งออกเป็น PDF ข้อความ Alt Text อาจปรากฏในโครงสร้างแท็กของ PDF

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

ฉันสามารถลบแท็กทั้งหมดจากงานนำเสนอ, สไลด์ หรือรูปร่างในครั้งเดียวได้หรือไม่?
ใช่ คอลเลกชัน tag collection รองรับการดำเนินการ clear ที่ลบคู่คีย์‑ค่าทั้งหมดพร้อมกัน

ฉันจะลบแท็กเดียวตามชื่อตามที่ต้องการโดยไม่ต้องวนลูปคอลเลกชันทั้งหมดได้อย่างไร?
ใช้การดำเนินการ Remove(name) บน TagCollection เพื่อลบแท็กตามคีย์ของมัน

ฉันจะดึงรายการชื่อแท็กทั้งหมดเพื่อทำการวิเคราะห์หรือกรองข้อมูลได้อย่างไร?
ใช้ GetNamesOfTags บนคอลเลกชัน tag collection จะได้อาเรย์ของชื่อแท็กทั้งหมด