จัดการป้ายความอ่อนไหวในงานนำเสนอ PowerPoint ด้วย Java

ภาพรวม

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

Aspose.Slides เปิดเผยข้อมูลเมตาป้ายความอ่อนไหวสมัยใหม่ผ่าน IPresentation.getSensitivityLabels. วิธีการนี้จะคืนค่า ISensitivityLabelCollection ที่สามารถตรวจสอบและแก้ไขได้ก่อนบันทึกพรีเซนเทชันเป็น PPTX.

ทำความเข้าใจคุณสมบัติของป้ายความอ่อนไหว

แต่ละ ISensitivityLabel มีเมตาข้อมูลต่อไปนี้:

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

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

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

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

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

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

แสดงรายการป้ายความอ่อนไหวที่มีอยู่

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

import com.aspose.slides.*;

Presentation presentation = new Presentation("presentation.pptx");
try {
    ISensitivityLabelCollection sensitivityLabels = presentation.getSensitivityLabels();

    for (ISensitivityLabel sensitivityLabel : sensitivityLabels) {
        System.out.println("Label ID: " + sensitivityLabel.getId());
        System.out.println("Site ID: " + sensitivityLabel.getSiteId());
        System.out.println("Enabled: " + sensitivityLabel.isEnabled());
        System.out.println("Removed: " + sensitivityLabel.isRemoved());
        System.out.println("Assignment method: " + sensitivityLabel.getAssignmentMethodType());

        for (Integer contentMarkType : sensitivityLabel.getContentMarkTypes()) {
            System.out.println("Content marking: " + contentMarkType);
        }
    }
} finally {
    presentation.dispose();
}

เพิ่มป้ายความอ่อนไหวพร้อมการทำเครื่องหมายเนื้อหา

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

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

import com.aspose.slides.*;
import java.util.UUID;

Presentation presentation = new Presentation("presentation.pptx");
try {
    ISensitivityLabelCollection sensitivityLabels = presentation.getSensitivityLabels();

    String labelIdentifier = "{11111111-2222-3333-4444-555555555555}";
    UUID siteIdentifier = UUID.fromString("aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee");
    boolean isEnabled = true;
    int assignmentMethod = SensitivityLabelAssignmentType.Privileged;

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

    sensitivityLabel.getContentMarkTypes().addItem(SensitivityLabelContentType.Footer);
    sensitivityLabel.getContentMarkTypes().addItem(SensitivityLabelContentType.Watermark);

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

อัปเดตป้ายความอ่อนไหว

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

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

import com.aspose.slides.*;

Presentation presentation = new Presentation("presentation.pptx");
try {
    ISensitivityLabelCollection sensitivityLabels = presentation.getSensitivityLabels();

    if (sensitivityLabels.getCount() > 0) {
        ISensitivityLabel sensitivityLabel = sensitivityLabels.get_Item(0);
        sensitivityLabel.setEnabled(true);
        sensitivityLabel.setAssignmentMethodType(SensitivityLabelAssignmentType.Privileged);
    }

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

ทำเครื่องหมายป้ายความอ่อนไหวว่าได้ลบแล้ว

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

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

import com.aspose.slides.*;

Presentation presentation = new Presentation("presentation.pptx");
try {
    ISensitivityLabelCollection sensitivityLabels = presentation.getSensitivityLabels();
    String targetLabelIdentifier = "{11111111-2222-3333-4444-555555555555}";

    for (ISensitivityLabel sensitivityLabel : sensitivityLabels) {
        boolean isTargetLabel = sensitivityLabel.getId().equalsIgnoreCase(targetLabelIdentifier);

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

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

อ่านและย้ายป้ายความอ่อนไหว MIP รุ่นเก่า

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

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

import com.aspose.slides.*;

Presentation presentation = new Presentation("presentation_with_legacy_labels.pptx");
try {
    ISensitivityLabel[] legacySensitivityLabels = presentation.getDocumentProperties().getSensitivityLabels();
    ISensitivityLabelCollection modernSensitivityLabels = presentation.getSensitivityLabels();

    for (ISensitivityLabel legacySensitivityLabel : legacySensitivityLabels) {
        boolean labelAlreadyExists = false;

        for (ISensitivityLabel modernSensitivityLabel : modernSensitivityLabels) {
            labelAlreadyExists = modernSensitivityLabel.getId().equalsIgnoreCase(
                    legacySensitivityLabel.getId());

            if (labelAlreadyExists) {
                break;
            }
        }

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

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

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

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

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

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

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

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

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

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

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

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

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

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