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

ภาพรวม

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

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

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

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

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

ข้อมูลกำหนดเอง (เฉพาะต่อหนึ่งงานนำเสนอ) หรือของผู้ใช้สามารถอยู่ในรูปแบบของแท็ก (TagCollection) และส่วน XML กำหนดเอง (CustomXmlPartCollection)

การรับค่าของแท็ก

ใน slides, แท็กสอดคล้องกับเมธอด DocumentProperties.getKeywords() และ DocumentProperties.setKeywords() ตัวอย่างโค้ดนี้แสดงวิธีการดึงค่าของแท็กด้วย Aspose.Slides for Node.js via Java สำหรับ Presentation:

var pres = new aspose.slides.Presentation("pres.pptx");
try {
    var keywords = pres.getDocumentProperties().getKeywords();
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

การเพิ่มแท็กในงานนำเสนอ

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

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

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

ตัวอย่างโค้ดนี้แสดงวิธีการเพิ่มแท็กไปยัง Presentation ด้วย Aspose.Slides for Node.js via Java:

var pres = new aspose.slides.Presentation("pres.pptx");
try {
    var tags = pres.getCustomData().getTags();
    pres.getCustomData().getTags().set_Item("MyTag", "My Tag Value");
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

แท็กยังสามารถตั้งค่าให้กับ Slide ได้เช่นกัน:

var pres = new aspose.slides.Presentation();
try {
    var slide = pres.getSlides().get_Item(0);
    slide.getCustomData().getTags().set_Item("tag", "value");
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

หรือรูปทรงใด ๆ Shape :

var pres = new aspose.slides.Presentation();
try {
    var slide = pres.getSlides().get_Item(0);
    var shape = slide.getShapes().addAutoShape(aspose.slides.ShapeType.Rectangle, 10, 10, 100, 50);
    shape.getTextFrame().setText("My text");
    shape.getCustomData().getTags().set_Item("tag", "value");
} finally {
    if (pres != null) {
        pres.dispose();
    }
}

ข้อจำกัด

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

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

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

ฉันสามารถลบแท็กทั้งหมดจากงานนำเสนอ, สไลด์ หรือรูปทรงได้ในหนึ่งขั้นตอนหรือไม่?

ได้. tag collection รองรับการดำเนินการ clear ที่ลบคู่คีย์‑ค่าทั้งหมดพร้อมกัน

ฉันจะลบแท็กเดียวตามชื่อโดยไม่ต้องวนลูปคอลเลกชันทั้งหมดได้อย่างไร?

ใช้การดำเนินการ remove(name) บน TagCollection เพื่อลบแท็กตามคีย์

ฉันจะดึงรายการชื่อแท็กทั้งหมดเพื่อวิเคราะห์หรือกรองได้อย่างไร?

ใช้ getNamesOfTags บน tag collection จะคืนค่าอาร์เรย์ของชื่อแท็กทั้งหมด