จัดการ Sensitivity Labels ในงานนำเสนอ PowerPoint ด้วย JavaScript

ภาพรวม

Microsoft Purview sensitivity labels ช่วยองค์กรจำแนกและควบคุมเอกสาร ระหว่างการประมวลผลงานนำเสนออัตโนมัติ แอปพลิเคชันอาจต้องคงรักษาเลเบลที่มีอยู่แล้ว ใช้เลเบลที่นโยบายเลือกไว้ ปรับสถานะ หรือย้ายข้อมูลเมตาเลเบลที่เขียนโดยขั้นตอนการทำงานของ Microsoft Information Protection (MIP) รุ่นเก่า

Aspose.Slides for Node.js via Java เปิดเผยข้อมูลเมตาเลเบลความละเอียดใหม่ผ่าน Presentation.getSensitivityLabels วิธีนี้จะคืนค่า SensitivityLabelCollection ที่สามารถตรวจสอบและแก้ไขก่อนบันทึกงานนำเสนอเป็น PPTX

ทำความเข้าใจคุณสมบัติของ Sensitivity Label

แต่ละ SensitivityLabel มีเมตาดาต้าดังต่อไปนี้:

Methods Purpose
SensitivityLabel.getId and SensitivityLabel.setId รับหรือกำหนดตัวระบุเลเบลความละเอียดในนโยบาย Purview
SensitivityLabel.getSiteId and SensitivityLabel.setSiteId รับหรือกำหนดไซต์ที่เชื่อมโยงกับนโยบายเลเบล
SensitivityLabel.isEnabled and SensitivityLabel.setEnabled รับหรือกำหนดว่าเลเบลถูกเปิดใช้งานหรือไม่
SensitivityLabel.isRemoved and SensitivityLabel.setRemoved รับหรือกำหนดว่าเลเบลถูกลบหรือไม่ กำหนดค่าเป็น true เมื่อสถานะการลบต้องถูกเก็บไว้ในเมตาดาต้า
SensitivityLabel.getAssignmentMethodType and SensitivityLabel.setAssignmentMethodType รับหรือกำหนดว่าเลเบลถูกนำไปใช้โดยอัตโนมัติหรือโดยการตัดสินใจของผู้ใช้
SensitivityLabel.getContentMarkTypes รับประเภทการทำเครื่องหมายเนื้อหาที่เชื่อมโยงกับเลเบล

คลาส SensitivityLabelAssignmentType กำหนดวิธีการที่เลเบลถูกกำหนด:

  • SensitivityLabelAssignmentType.Standard แสดงถึงเลเบลเริ่มต้นหรือที่ถูกนำไปใช้โดยอัตโนมัติ
  • SensitivityLabelAssignmentType.Privileged แสดงถึงเลเบลที่ถูกนำไปใช้โดยการตัดสินใจของผู้ใช้ รวมถึงเลเบลที่นำไปใช้ด้วยตนเอง, ที่แนะนำ, และที่บังคับใช้

คลาส SensitivityLabelContentType กำหนดการทำเครื่องหมายที่เชื่อมโยงกับเลเบล:

Value Meaning
SensitivityLabelContentType.None เลเบลถูกนำไปใช้เป็นค่าปริยายหรือโดยอัตโนมัติ
SensitivityLabelContentType.Header มีการทำเครื่องหมายเนื้อหาหัวเรื่องที่เชื่อมโยงกับเลเบล
SensitivityLabelContentType.Footer มีการทำเครื่องหมายเนื้อหาท้ายกระดาษที่เชื่อมโยงกับเลเบล
SensitivityLabelContentType.Watermark มีการทำเครื่องหมายเนื้อหาน้ำหมึกที่เชื่อมโยงกับเลเบล
SensitivityLabelContentType.Encryption มีการปกป้องด้วยการเข้ารหัสที่เชื่อมโยงกับเลเบล

หลายประเภทการทำเครื่องหมายสามารถเชื่อมโยงกับเลเบลเดียวกันได้

รายชื่อ Sensitivity Labels ที่มีอยู่

อ่านคอลเลกชันเลเบลสมัยใหม่จาก Presentation.getSensitivityLabels แล้วทำการวนลูป ตัวอย่างต่อไปนี้จะแสดงทุกคุณสมบัติและการทำเครื่องหมายเนื้อหาที่จัดเก็บสำหรับแต่ละเลเบล:

const aspose = { slides: require("aspose.slides.via.java") };

const presentation = new aspose.slides.Presentation("presentation.pptx");
try {
    const sensitivityLabels = presentation.getSensitivityLabels();
    const labelCount = sensitivityLabels.getCount();

    for (let labelIndex = 0; labelIndex < labelCount; labelIndex++) {
        const sensitivityLabel = sensitivityLabels.get_Item(labelIndex);
        const labelIdentifier = sensitivityLabel.getId();
        const siteIdentifier = sensitivityLabel.getSiteId();
        const isEnabled = sensitivityLabel.isEnabled();
        const isRemoved = sensitivityLabel.isRemoved();
        const assignmentMethod = sensitivityLabel.getAssignmentMethodType();

        console.log("Label ID: " + labelIdentifier);
        console.log("Site ID: " + siteIdentifier);
        console.log("Enabled: " + isEnabled);
        console.log("Removed: " + isRemoved);
        console.log("Assignment method: " + assignmentMethod);

        const contentMarkTypes = sensitivityLabel.getContentMarkTypes();
        const contentMarkCount = contentMarkTypes.size();

        for (let contentMarkIndex = 0; contentMarkIndex < contentMarkCount; contentMarkIndex++) {
            const contentMarkType = contentMarkTypes.get_Item(contentMarkIndex);
            console.log("Content marking: " + contentMarkType);
        }
    }
} finally {
    presentation.dispose();
}

เพิ่ม Sensitivity Label พร้อมการทำเครื่องหมายเนื้อหา

ใช้ SensitivityLabelCollection.add พร้อมตัวระบุเลเบล, ตัวระบุไซต์, สถานะเปิดใช้งาน, และวิธีการกำหนด หลังจากเมธอดคืนค่า SensitivityLabel ใหม่ ให้เพิ่มค่าการทำเครื่องหมายที่ต้องการผ่านรายการที่คืนจาก SensitivityLabel.getContentMarkTypes

ตัวอย่างต่อไปนี้เพิ่มเลเบลที่เลือกด้วยตนเองซึ่งเชื่อมโยงกับการทำเครื่องหมายที่ท้ายกระดาษและน้ำหมึก แล้วบันทึกผลลัพธ์เป็น PPTX:

const aspose = { slides: require("aspose.slides.via.java") };
const java = require("java");

const presentation = new aspose.slides.Presentation("presentation.pptx");
try {
    const sensitivityLabels = presentation.getSensitivityLabels();

    const labelIdentifier = "{11111111-2222-3333-4444-555555555555}";
    const siteIdentifier = java.callStaticMethodSync(
        "java.util.UUID",
        "fromString",
        "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee");
    const isEnabled = true;
    const assignmentMethod = aspose.slides.SensitivityLabelAssignmentType.Privileged;

    const sensitivityLabel = sensitivityLabels.add(
        labelIdentifier,
        siteIdentifier,
        isEnabled,
        assignmentMethod);

    const contentMarkTypes = sensitivityLabel.getContentMarkTypes();
    contentMarkTypes.addItem(aspose.slides.SensitivityLabelContentType.Footer);
    contentMarkTypes.addItem(aspose.slides.SensitivityLabelContentType.Watermark);

    presentation.save("presentation_with_label.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

อัปเดต Sensitivity Label

ค่าของ SensitivityLabel สามารถอ่าน/เขียนได้ ยกเว้นรายการที่คืนจาก SensitivityLabel.getContentMarkTypes ซึ่งต้องแก้ไขผ่านการดำเนินการของรายการ หลังจากค้นหาเลเบลที่ต้องการ คุณสามารถอัปเดตตัวระบุ, ตัวระบุไซต์, สถานะเปิดใช้งาน, วิธีการกำหนด, สถานะการลบ และประเภทการทำเครื่องหมายเนื้อหา แล้วบันทึกงานนำเสนอเพื่อบันทึกการเปลี่ยนแปลง

ตัวอย่างต่อไปนี้อัปเดตสถานะเปิดใช้งานและวิธีการกำหนดของเลเบลแรก:

const aspose = { slides: require("aspose.slides.via.java") };

const presentation = new aspose.slides.Presentation("presentation.pptx");
try {
    const sensitivityLabels = presentation.getSensitivityLabels();
    const labelCount = sensitivityLabels.getCount();

    if (labelCount > 0) {
        const sensitivityLabel = sensitivityLabels.get_Item(0);
        sensitivityLabel.setEnabled(true);
        sensitivityLabel.setAssignmentMethodType(
            aspose.slides.SensitivityLabelAssignmentType.Privileged);
    }

    presentation.save("presentation_with_updated_label.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

ทำเครื่องหมาย Sensitivity Label ว่า ถูกลบ

เพื่อคงไว้ซึ่งข้อเท็จจริงว่าเลเบลถูกลบ ให้ค้นหาเลเบลและเรียก SensitivityLabel.setRemoved ด้วยค่า true การทำเช่นนี้จะคงรายการเลเบลไว้พร้อมบันทึกสถานะการลบ หากคุณต้องการลบรายการออกจากคอลเลกชันสมัยใหม่ ให้ใช้ SensitivityLabelCollection.removeAt; ใช้ SensitivityLabelCollection.clear เพื่อลบทุกรายการ

ตัวอย่างต่อไปนี้ทำเครื่องหมายเลเบลเฉพาะว่าถูกลบและบันทึกงานนำเสนอที่อัปเดตแล้ว:

const aspose = { slides: require("aspose.slides.via.java") };

const presentation = new aspose.slides.Presentation("presentation.pptx");
try {
    const sensitivityLabels = presentation.getSensitivityLabels();
    const targetLabelIdentifier = "{11111111-2222-3333-4444-555555555555}";
    const labelCount = sensitivityLabels.getCount();

    for (let labelIndex = 0; labelIndex < labelCount; labelIndex++) {
        const sensitivityLabel = sensitivityLabels.get_Item(labelIndex);
        const labelIdentifier = sensitivityLabel.getId();
        const isTargetLabel = labelIdentifier.toLowerCase() === targetLabelIdentifier.toLowerCase();

        if (isTargetLabel) {
            sensitivityLabel.setRemoved(true);
            break;
        }
    }

    presentation.save("presentation_with_removed_label.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

อ่านและย้าย Sensitivity Labels จากระบบ MIP เก่า

ขั้นตอนการทำงานที่ใช้ MIP รุ่นเก่าสามารถเก็บเมตาดาต้าเลเบลความละเอียดในคุณสมบัติเสริมของเอกสารแทนคอลเลกชันเลเบลสมัยใหม่ อ่านเมตาดาต้านั้นด้วย DocumentProperties.getSensitivityLabels เมธอดจะวิเคราะห์คุณสมบัติเสริมแบบเก่าและคืนอาร์เรย์ของอ็อบเจ็กต์ SensitivityLabel

เพื่อย้ายเมตาดาต้า ให้เพิ่มแต่ละเลเบลที่คืนค่ามาเข้าใน SensitivityLabelCollection สมัยใหม่ผ่าน SensitivityLabelCollection.add เนื่องจากการเพิ่มเลเบลที่ซ้ำกันจะทำให้เกิดข้อยกเว้น ตัวอย่างจึงตรวจสอบคอลเลกชันปลายทางก่อนคัดลอกแต่ละเลเบล คุณสามารถเพิ่มการตรวจสอบเพิ่มเติมเพื่อยืนยันว่าเลเบลเก่ายังคงอยู่ในนโยบาย Purview ปัจจุบันหรือไม่

const aspose = { slides: require("aspose.slides.via.java") };

const presentation = new aspose.slides.Presentation("presentation_with_legacy_labels.pptx");
try {
    const legacySensitivityLabels = presentation.getDocumentProperties().getSensitivityLabels();
    const modernSensitivityLabels = presentation.getSensitivityLabels();

    for (let legacyLabelIndex = 0; legacyLabelIndex < legacySensitivityLabels.length; legacyLabelIndex++) {
        const legacySensitivityLabel = legacySensitivityLabels[legacyLabelIndex];
        const legacyLabelIdentifier = legacySensitivityLabel.getId();
        const modernLabelCount = modernSensitivityLabels.getCount();
        let labelAlreadyExists = false;

        for (let modernLabelIndex = 0; modernLabelIndex < modernLabelCount; modernLabelIndex++) {
            const modernSensitivityLabel = modernSensitivityLabels.get_Item(modernLabelIndex);
            const modernLabelIdentifier = modernSensitivityLabel.getId();

            labelAlreadyExists =
                modernLabelIdentifier.toLowerCase() === legacyLabelIdentifier.toLowerCase();

            if (labelAlreadyExists) {
                break;
            }
        }

        if (!labelAlreadyExists) {
            modernSensitivityLabels.add(legacySensitivityLabel);
        }
    }

    presentation.save("presentation_with_modern_labels.pptx", aspose.slides.SaveFormat.Pptx);
} finally {
    presentation.dispose();
}

การย้ายจะคัดลอกอ็อบเจ็กต์เลเบลที่วิเคราะห์แล้วไปยังคอลเลกชันสมัยใหม่ ไม่จำเป็นต้องล้างคุณสมบัติเสริมทั้งหมดของเอกสาร ดังนั้นเมตาดาต้าเอกสารที่ไม่เกี่ยวข้องจะยังคงอยู่ ใช้ Presentation.save พร้อม SaveFormat.Pptx เพื่อเขียนเมตาดาต้าเลเบลสมัยใหม่ลงในไฟล์ PPTX

FAQ

การเพิ่มประเภทการทำเครื่องหมายเนื้อหา จะสร้างหัวเรื่อง, ท้ายกระดาษ หรือสลิปน้ำหมึกที่มองเห็นได้บนสไลด์หรือไม่?

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

ความแตกต่างระหว่างการทำเครื่องหมายเลเบลว่า ถูกลบ กับการลบออกจากคอลเลกชันคืออะไร?

เรียก SensitivityLabel.setRemoved ด้วย true จะคงรายการเลเบลและบันทึกสถานะการลบ ส่วนการเรียก SensitivityLabelCollection.removeAt จะลบรายการออกจากคอลเลกชันสมัยใหม่ เลือกการกระทำที่สอดคล้องกับข้อกำหนดการเก็บรักษาเมตาดาต้าขององค์กรของคุณ

งานนำเสนอสามารถมีเมตาดาต้า MIP แบบเก่าและเลเบลความละเอียดสมัยใหม่พร้อมกันได้หรือไม่?

ได้ เลเบลแบบเก่าสามารถคงอยู่ในคุณสมบัติเสริมของเอกสารขณะที่เลเบลสมัยใหม่สามารถเข้าถึงได้ผ่าน Presentation.getSensitivityLabels ใช้ DocumentProperties.getSensitivityLabels เพื่ออ่านเมตาดาต้าแบบเก่าและย้ายเฉพาะเลเบลที่ยังไม่มีอยู่ในคอลเลกชันสมัยใหม่

เมื่อเลเบลที่มีตัวระบุเดียวกันถูกเพิ่มหลายครั้ง จะเกิดอะไรขึ้น?

SensitivityLabelCollection.add จะยกข้อยกเว้นเมื่อคอลเลกชันมีเลเบลที่มีตัวระบุเดียวกันอยู่แล้ว ตรวจสอบค่าที่มีอยู่แล้วโดยใช้ SensitivityLabel.getId ก่อนทำการเพิ่มหรือย้ายเลเบล

ควรใช้รูปแบบไฟล์ใดเพื่อรักษาเลเบลความละเอียดที่อัปเดต?

บันทึกงานนำเสนอเป็น PPTX โดยเรียก Presentation.save พร้อม SaveFormat.Pptx ตามที่แสดงในตัวอย่างข้างต้น