Quản lý Nhãn Độ nhạy trong Bản trình chiếu PowerPoint bằng Java
Tổng quan
Microsoft Purview sensitivity labels 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ữ lại 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 cung cấp siêu dữ liệu nhãn độ nhạy hiện đại thông qua IPresentation.getSensitivityLabels. Phương thức này trả về một ISensitivityLabelCollection 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.
Lưu ý
Các định danh nhãn độ nhạy và thông tin chính sách do cấu hình Microsoft Purview của bạn xác định. Hãy xác thực tính khả dụng của nhãn và yêu cầu chính sách trong môi trường của bạn trước khi thêm hoặc di chuyển siêu dữ liệu. Các giá trị của ISensitivityLabel.getContentMarkTypes mô tả các đánh dấu nội dung liên quan đến một nhãn; chúng không tự động tạo văn bản hoặc hình dạng hiển thị trên các slide.Hiểu các Thuộc tính Nhãn Độ nhạy
Mỗi ISensitivityLabel chứa các siêu dữ liệu sau:
| Phương thức | Mục đích |
|---|---|
| ISensitivityLabel.getId và ISensitivityLabel.setId | Lấy hoặc đặt định danh nhãn độ nhạy trong chính sách Purview. |
| ISensitivityLabel.getSiteId và ISensitivityLabel.setSiteId | Lấy hoặc đặt site liên kết với chính sách nhãn. |
| ISensitivityLabel.isEnabled và ISensitivityLabel.setEnabled | Lấy hoặc đặt trạng thái nhãn có được bật hay không. |
| ISensitivityLabel.isRemoved và ISensitivityLabel.setRemoved | Lấy hoặc đặt trạng thái nhãn đã bị xóa. Đặt giá trị thành true khi cần giữ lại trạng thái xóa trong siêu dữ liệu. |
| ISensitivityLabel.getAssignmentMethodType và ISensitivityLabel.setAssignmentMethodType | Lấy hoặc đặt cách nhãn được áp dụng tự động hay qua quyết định của người dùng. |
| ISensitivityLabel.getContentMarkTypes | Lấy các loại đánh dấu nội dung liên quan đến nhãn. |
Lớp SensitivityLabelAssignmentType định nghĩa cách nhãn được gán:
- SensitivityLabelAssignmentType.Standard đại diện cho nhãn mặc định hoặc được áp dụng tự động.
- SensitivityLabelAssignmentType.Privileged đại diện cho nhãn được áp dụng qua quyết định của người dùng, bao gồm nhãn được áp dụng thủ công, đề xuất và bắt buộc.
Lớp SensitivityLabelContentType định nghĩa loại đánh dấu liên quan tới nhãn:
| Giá trị | Ý nghĩa |
|---|---|
| SensitivityLabelContentType.None | Nhãn được áp dụng mặc định hoặc tự động. |
| SensitivityLabelContentType.Header | Đánh dấu nội dung tiêu đề được liên kết với nhãn. |
| SensitivityLabelContentType.Footer | Đánh dấu nội dung chân trang được liên kết với nhãn. |
| SensitivityLabelContentType.Watermark | Đánh dấ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 đánh dấu có thể được gắn vào cùng 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ừ IPresentation.getSensitivityLabels và duyệt qua nó. Ví dụ dưới đây liệt kê mọi thuộc tính và đánh dấu nội dung được lưu cho mỗi nhãn:
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();
}
Thêm Nhãn Độ nhạy với Đánh dấu Nội dung
Sử dụng ISensitivityLabelCollection.add với định danh nhãn, định danh site, trạng thái bật và phương pháp gán. Sau khi phương thức trả về đối tượng ISensitivityLabel mới, thêm các giá trị đánh dấu yêu cầu qua danh sách trả về bởi ISensitivityLabel.getContentMarkTypes.
Ví dụ dưới đây thêm một nhãn được người dùng chọn thủ công, liên kết với các đánh dấu chân trang và watermark, sau đó lưu kết quả dưới dạng 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();
}
Cập nhật Nhãn Độ nhạy
Các giá trị của ISensitivityLabel có thể đọc/ghi, ngoại trừ danh sách trả về bởi ISensitivityLabel.getContentMarkTypes được sửa đổi thông qua các thao tác danh sách của nó. Sau khi xác định nhãn cần thiết, bạn có thể cập nhật định danh, định danh site, trạng thái bật, phương pháp gán, trạng thái xóa và các loại đánh dấu nội dung. Lưu bản trình bày để lưu các thay đổi.
Ví dụ dưới đây cập nhật trạng thái bật và phương pháp gán của nhãn đầu tiên:
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();
}
Đánh dấu Nhãn Độ nhạy là Đã xóa
Để giữ lại thông tin một nhãn đã bị xóa, tìm nhãn và gọi ISensitivityLabel.setRemoved với true. Thao tác này giữ lại mục nhập nhãn đồng thời ghi nhận trạng thái đã xóa. Nếu bạn muốn xóa mục nhập khỏi bộ sưu tập hiện đại, sử dụng ISensitivityLabelCollection.removeAt; dùng ISensitivityLabelCollection.clear để xóa mọi mục.
Ví dụ dưới đây đá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 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();
}
Đọc và Di chuyển Nhãn Độ nhạy MIP Cũ
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 IDocumentProperties.getSensitivityLabels. Phương thức này phân tích các thuộc tính tùy chỉnh cổ và trả về một mảng các đối tượng ISensitivityLabel.
Để di chuyển siêu dữ liệu, thêm mỗi nhãn đã trả về vào ISensitivityLabelCollection hiện đại thông qua ISensitivityLabelCollection.add. Vì việc thêm một định danh nhãn trùng sẽ gây 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 để đảm bảo mỗi nhãn cũ vẫn tồn tại trong chính sách Purview hiện tại.
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();
}
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 hết các thuộc tính tài liệu tùy chỉnh, vì vậy các siêu dữ liệu tài liệu không liên quan vẫn được giữ nguyên. Sử dụng IPresentation.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
Việc thêm một loại đánh dấu nội dung có tạo tiêu đề, chân trang hoặc watermark hiển thị trên slide không?
Không. Các giá trị được thêm qua danh sách trả về bởi ISensitivityLabel.getContentMarkTypes mô tả các đánh dấu liên quan tới nhãn độ nhạy. Chúng không tạo văn bản hoặc hình dạng hiển thị trong bản trình bày. Hãy thêm nội dung slide tương ứng riêng nếu quy trình của bạn cần hiển thị các đánh dấu đó.
Sự khác nhau giữa việc đánh dấu một nhãn là đã xóa và xóa nó khỏi bộ sưu tập là gì?
Gọi ISensitivityLabel.setRemoved với true giữ lại mục nhập nhãn và ghi nhận trạng thái đã xóa. Gọi ISensitivityLabelCollection.removeAt xóa mục nhập khỏi bộ sưu tập hiện đại. Chọn thao tác phù hợp với yêu cầu lưu giữ 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 cũ và nhãn độ nhạy hiện đại không?
Có. Các nhãn cũ 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 truy cập qua IPresentation.getSensitivityLabels. Sử dụng IDocumentProperties.getSensitivityLabels để đọc siêu dữ liệu cũ 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ều gì xảy ra khi một nhãn có cùng định danh được thêm nhiều lần?
ISensitivityLabelCollection.add sẽ ném 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ị hiện có trả về bởi ISensitivityLabel.getId trước khi thêm hoặc di chuyển nhãn.
Định dạng đầu ra nào nên được dùng để bảo toàn 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 IPresentation.save với SaveFormat.Pptx, như đã minh họa trong các ví dụ ở trên.