Quản lý Nhãn Độ nhạy trong Bản trình bày PowerPoint bằng Python

Tổng quan

Các nhãn độ nhạy của Microsoft Purview giúp các tổ chức phân loại và quản lý tài liệu. Trong quá trình xử lý bản trình bày tự động, một ứng dụng có thể cần giữ nguyên nhãn hiện có, áp dụng nhãn được chọn bởi chính sách, cập nhật trạng thái của nó, hoặc di chuyển siêu dữ liệu nhãn được ghi bởi quy trình Microsoft Information Protection (MIP) cũ.

Aspose.Slides for Python via .NET cung cấp siêu dữ liệu nhãn độ nhạy hiện đại thông qua Presentation.sensitivity_labels. Thuộc tính này trả về một SensitivityLabelCollection có thể được kiểm tra và sửa đổi trước khi bản trình bày được lưu dưới dạng PPTX.

Hiểu các Thuộc tính Nhãn Độ nhạy

Mỗi SensitivityLabel chứa các siêu dữ liệu sau:

Thuộc tính Mục đích
SensitivityLabel.id Xác định nhãn độ nhạy trong chính sách Purview.
SensitivityLabel.site_id Xác định trang web liên kết với chính sách nhãn.
SensitivityLabel.is_enabled Cho biết nhãn có được bật hay không.
SensitivityLabel.is_removed Cho biết nhãn đã bị xóa. Đặt thuộc tính này thành True khi trạng thái xóa phải được giữ trong siêu dữ liệu.
SensitivityLabel.assignment_method_type Chỉ định nhãn được áp dụng tự động hay thông qua quyết định của người dùng.
SensitivityLabel.content_mark_types Liệt kê các loại ký hiệu nội dung liên kết với nhãn.

Kiểu liệt kê SensitivityLabelAssignmentType mô tả cách một nhãn được gán:

Kiểu liệt kê SensitivityLabelContentType xác định ký hiệu liên kết với một nhãn:

Giá trị Ý nghĩa
SensitivityLabelContentType.NONE Nhãn được áp dụng mặc định hoặc tự động.
SensitivityLabelContentType.HEADER Ký hiệu nội dung tiêu đề được liên kết với nhãn.
SensitivityLabelContentType.FOOTER Ký hiệu nội dung chân trang được liên kết với nhãn.
SensitivityLabelContentType.WATERMARK Ký hiệu nội dung watermark được liên kết với nhãn.
SensitivityLabelContentType.ENCRYPTION Bảo vệ mã hoá được liên kết với nhãn.

Nhiều loại ký hiệu có thể được liên kết với một nhãn.

Liệt kê các Nhãn Độ nhạy hiện có

Đọc bộ sưu tập nhãn hiện đại từ Presentation.sensitivity_labels và liệt kê chúng. Ví dụ sau liệt kê mọi thuộc tính và ký hiệu nội dung được lưu cho mỗi nhãn:

import aspose.slides as slides

with slides.Presentation("presentation.pptx") as presentation:
    sensitivity_labels = presentation.sensitivity_labels

    for sensitivity_label in sensitivity_labels:
        print("Label ID:", sensitivity_label.id)
        print("Site ID:", sensitivity_label.site_id)
        print("Enabled:", sensitivity_label.is_enabled)
        print("Removed:", sensitivity_label.is_removed)
        print("Assignment method:", sensitivity_label.assignment_method_type)

        for content_mark_type in sensitivity_label.content_mark_types:
            print("Content marking:", content_mark_type)

Thêm Nhãn Độ nhạy kèm Ký hiệu Nội dung

Sử dụng SensitivityLabelCollection.add với định danh nhãn, định danh trang, trạng thái bật và phương thức gán. Truyền định danh trang dưới dạng đối tượng Python uuid.UUID. Sau khi phương thức trả về SensitivityLabel mới, thêm các giá trị ký hiệu cần thiết vào SensitivityLabel.content_mark_types.

Ví dụ sau thêm một nhãn được chọn thủ công, liên kết với ký hiệu chân trang và watermark, và sau đó lưu kết quả dưới dạng PPTX:

import uuid
import aspose.slides as slides

with slides.Presentation("presentation.pptx") as presentation:
    sensitivity_labels = presentation.sensitivity_labels

    label_identifier = "{11111111-2222-3333-4444-555555555555}"
    site_identifier = uuid.UUID("aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee")
    is_enabled = True
    assignment_method = slides.SensitivityLabelAssignmentType.PRIVILEGED

    sensitivity_label = sensitivity_labels.add(
        label_identifier,
        site_identifier,
        is_enabled,
        assignment_method
    )

    sensitivity_label.content_mark_types.append(slides.SensitivityLabelContentType.FOOTER)
    sensitivity_label.content_mark_types.append(slides.SensitivityLabelContentType.WATERMARK)

    presentation.save("presentation_with_label.pptx", slides.export.SaveFormat.PPTX)

Cập nhật Nhãn Độ nhạy

Các thuộc tính của SensitivityLabel có thể đọc/ghi, ngoại trừ danh sách trả về bởi SensitivityLabel.content_mark_types được sửa đổi thông qua các thao tác danh sách của nó. Sau khi xác định được nhãn cần thiết, bạn có thể cập nhật định danh, định danh trang, trạng thái bật, phương thức gán, trạng thái xóa và các loại ký hiệu nội dung. Lưu bản trình bày để ghi lại các thay đổi.

Ví dụ sau cập nhật trạng thái bật và phương thức gán của nhãn đầu tiên:

import aspose.slides as slides

with slides.Presentation("presentation.pptx") as presentation:
    sensitivity_labels = presentation.sensitivity_labels

    if sensitivity_labels.count > 0:
        sensitivity_label = sensitivity_labels[0]
        sensitivity_label.is_enabled = True
        sensitivity_label.assignment_method_type = (
            slides.SensitivityLabelAssignmentType.PRIVILEGED
        )

    presentation.save("presentation_with_updated_label.pptx", slides.export.SaveFormat.PPTX)

Đánh dấu Nhãn Độ nhạy là Đã Xóa

Để giữ lại thông tin rằng một nhãn đã bị xóa, tìm nhãn và đặt SensitivityLabel.is_removed thành True. Điều này giữ lại mục nhãn đồng thời ghi lại trạng thái đã xóa. Nếu bạn muốn xóa một mục khỏi bộ sưu tập hiện đại, hãy sử dụng SensitivityLabelCollection.remove_at; sử dụng SensitivityLabelCollection.clear để xóa mọi mục.

Ví dụ sau đánh dấu một nhãn cụ thể là đã xóa và lưu bản trình bày đã cập nhật:

import aspose.slides as slides

with slides.Presentation("presentation.pptx") as presentation:
    sensitivity_labels = presentation.sensitivity_labels
    target_label_identifier = "{11111111-2222-3333-4444-555555555555}"

    for sensitivity_label in sensitivity_labels:
        identifiers_match = (
            sensitivity_label.id.casefold() == target_label_identifier.casefold()
        )

        if identifiers_match:
            sensitivity_label.is_removed = True
            break

    presentation.save("presentation_with_removed_label.pptx", slides.export.SaveFormat.PPTX)

Đọc và Di chuyển Nhãn Độ nhạy Legacy MIP

Các quy trình dựa trên MIP cũ có thể lưu siêu dữ liệu nhãn độ nhạy trong thuộc tính tài liệu tùy chỉnh thay vì bộ sưu tập nhãn hiện đại. Đọc siêu dữ liệu đó bằng DocumentProperties.get_sensitivity_labels. Phương thức này phân tích các thuộc tính tùy chỉnh legacy và trả về các đối tượng SensitivityLabel.

Để di chuyển siêu dữ liệu, thêm mỗi nhãn trả về vào SensitivityLabelCollection hiện đại thông qua SensitivityLabelCollection.add. Vì việc thêm một định danh nhãn trùng lặp sẽ gây ra ngoại lệ, ví dụ kiểm tra bộ sưu tập đích trước khi sao chép mỗi nhãn. Bạn có thể thêm xác thực bổ sung để xác nhận mỗi nhãn legacy vẫn tồn tại trong chính sách Purview hiện tại.

import aspose.slides as slides

with slides.Presentation("presentation_with_legacy_labels.pptx") as presentation:
    legacy_sensitivity_labels = (
        presentation.document_properties.get_sensitivity_labels()
    )
    modern_sensitivity_labels = presentation.sensitivity_labels

    for legacy_sensitivity_label in legacy_sensitivity_labels:
        label_already_exists = False

        for modern_sensitivity_label in modern_sensitivity_labels:
            label_already_exists = (
                modern_sensitivity_label.id.casefold()
                == legacy_sensitivity_label.id.casefold()
            )

            if label_already_exists:
                break

        if not label_already_exists:
            modern_sensitivity_labels.add(legacy_sensitivity_label)

    presentation.save("presentation_with_modern_labels.pptx", slides.export.SaveFormat.PPTX)

Quá trình di chuyển sao chép các đối tượng nhãn đã phân tích vào bộ sưu tập hiện đại. Nó không yêu cầu xóa toàn bộ thuộc tính tài liệu tùy chỉnh, vì vậy siêu dữ liệu tài liệu không liên quan vẫn được giữ nguyên. Sử dụng Presentation.save cùng với SaveFormat.PPTX để ghi siêu dữ liệu nhãn hiện đại vào tệp PPTX.

Câu hỏi thường gặp

Thêm một loại ký hiệu nội dung có tạo tiêu đề, chân trang hoặc watermark hiển thị trên các slide không?

Không. Các giá trị được thêm qua SensitivityLabel.content_mark_types mô tả các ký hiệu liên quan đến nhãn độ nhạy. Chúng không tạo ra văn bản hay hình dạng hiển thị trong bản trình bày. Nếu quy trình của bạn cần hiển thị các ký hiệu đó, hãy thêm nội dung slide tương ứng riêng biệt.

Sự khác nhau giữa việc đánh dấu một nhãn là đã xóa và việc xóa nó khỏi bộ sưu tập là gì?

Đặt SensitivityLabel.is_removed thành True giữ lại mục nhãn và ghi lại trạng thái đã xóa. Gọi SensitivityLabelCollection.remove_at sẽ xóa mục khỏi bộ sưu tập hiện đại. Hãy chọn thao tác phù hợp với yêu cầu lưu trữ siêu dữ liệu của tổ chức bạn.

Một bản trình bày có thể chứa cả siêu dữ liệu MIP legacy và nhãn độ nhạy hiện đại không?

Có. Các nhãn legacy có thể vẫn tồn tại trong thuộc tính tài liệu tùy chỉnh trong khi các nhãn hiện đại có sẵn qua Presentation.sensitivity_labels. Sử dụng DocumentProperties.get_sensitivity_labels để đọc siêu dữ liệu legacy và chỉ di chuyển các nhãn hợp lệ chưa có trong bộ sưu tập hiện đại.

Đi gì sẽ xảy ra khi một nhãn có cùng định danh được thêm nhiều lần?

SensitivityLabelCollection.add gây ra ngoại lệ khi bộ sưu tập đã chứa một nhãn có cùng định danh. Kiểm tra các giá trị SensitivityLabel.id hiện có trước khi thêm hoặc di chuyển nhãn.

Định dạng xuất nào nên được sử dụng để giữ lại các nhãn độ nhạy đã cập nhật?

Lưu bản trình bày dưới dạng PPTX bằng cách gọi Presentation.save cùng với SaveFormat.PPTX, như đã minh họa trong các ví dụ ở trên.