Làm việc với Phạm vi có thể chỉnh sửa

Làm việc với Phạm vi có thể chỉnh sửa

Làm việc với Các Phạm vi Có thể chỉnh sửa

Hướng dẫn này chỉ ra cách kiểm tra và xóa các phạm vi có thể chỉnh sửa – các vùng mà tính năng “Restrict Editing” của Word loại trừ khỏi hạn chế chỉnh sửa chung của tài liệu, có thể được giới hạn cho một người dùng hoặc nhóm cụ thể – trong Aspose.Words FOSS cho .NET. Một phạm vi có thể chỉnh sửa được bao quanh trong cây tài liệu bởi một cặp nút đánh dấu, EditableRangeStart and EditableRangeEnd, và được mô tả toàn bộ bởi EditableRange lớp giao diện.


Tìm kiếm Các Phạm vi Có thể chỉnh sửa trong Tài liệu

Không có thuộc tính bộ sưu tập duy nhất cho các phạm vi có thể chỉnh sửa; hãy tìm chúng bằng cách duyệt cây nút. CompositeNode.GetChildNodes(nodeType, isDeep) với NodeType.EditableRangeStart trả về mọi nút EditableRangeStart trong tài liệu (hoặc trong một nhánh con, nếu được gọi trên một nút khác Document). Mỗi thuộc tính EditableRangeStart.EditableRange sau đó trả về đối tượng mặt nạ EditableRange tương ứng.


Lớp mặt nạ EditableRange

EditableRange mô tả một phạm vi có thể chỉnh sửa duy nhất như một toàn thể: Id xác định nó, SingleUser tùy chọn đặt tên cho người dùng cụ thể được phép chỉnh sửa, và EditorGroup (một giá trị EditorType) tùy chọn đặt tên cho một nhóm chỉnh sửa thay thế. EditableRangeStart và EditableRangeEnd trả về cặp nút đánh dấu bao quanh phạm vi trong tài liệu. EditableRange.Remove() xóa phạm vi có thể chỉnh sửa – loại bỏ việc miễn trừ hạn chế chỉnh sửa cho vùng đó, mà không xóa nội dung tài liệu bên trong.


Các nút đánh dấu: EditableRangeStart và EditableRangeEnd

EditableRangeStart và EditableRangeEnd là các lớp con Node được đóng kín, đánh dấu ranh giới của một phạm vi trong luồng nội dung của tài liệu. EditableRangeStart.Id và EditableRangeEnd.Id xác định phạm vi; EditableRangeStart.EditableRange tiếp cận đối tượng facade trực tiếp, và EditableRangeEnd.EditableRangeStart quay lại tới dấu bắt đầu tương ứng. Là các nút thông thường, cả hai đều hỗ trợ các thành viên chuẩn Node — ParentNode, Document, PreviousSibling, NextSibling, và Remove() để xóa dấu riêng lẻ.


Hạn chế quyền truy cập với EditorType

EditorType liệt kê các nhóm chỉnh sửa mà một EditableRange.EditorGroup có thể tham chiếu: Administrators, Contributors, Editors, Owners, Everyone, Current, None, và Unspecified (cũng khả dụng dưới dạng Default, một bí danh cho Unspecified).


Mẹo và Thực hành Tốt nhất

  • Sử dụng GetChildNodes(NodeType.EditableRangeStart, true) cùng với isDeep: true để tìm các phạm vi có thể chỉnh sửa ở bất kỳ đâu trong tài liệu, không chỉ trong các nút con trực tiếp của một nút.
  • Đọc EditableRange.SingleUser và EditorGroup cùng nhau để xác định phạm vi bị hạn chế cho ai — một phạm vi có thể được giới hạn cho một người dùng cụ thể, một nhóm chỉnh sửa, hoặc không giới hạn nào.
  • Gọi EditableRange.Remove() (trên facade) thay vì xóa các nút đánh dấu EditableRangeStart và EditableRangeEnd riêng lẻ, để cả hai đầu của phạm vi được làm sạch một cách nhất quán.

Các vấn đề thường gặp

Vấn đềNguyên nhânKhắc phục
Không tìm thấy phạm vi có thể chỉnh sửa dù tài liệu đã được giới hạn chỉnh sửaTìm kiếm đã sử dụng lời gọi GetChildNodes mặc định (nông)Truyền isDeep: true để tìm kiếm bao phủ toàn bộ cây con của tài liệu
Xóa một phạm vi có thể chỉnh sửa không xóa bỏ văn bản nằm trong đóEditableRange.Remove() chỉ xóa các dấu đánh dấu phạm vi và ngoại lệ chỉnh sửa, không xóa nội dung ở giữa chúngĐiều này là mong đợi – hãy xóa nội dung riêng biệt nếu nó cũng cần được loại bỏ
EditorGroup hiển thị là Unspecified mặc dù Word hiển thị một nhóm được đặt tênNhóm biên tập của phạm vi trong tài liệu nguồn ánh xạ tới EditorType.Unspecified/Default thay vì một trong các giá trị của nhóm được đặt tênKiểm tra SingleUser nữa – phạm vi có thể được giới hạn cho một người dùng riêng lẻ

FAQ

Làm thế nào để tôi tìm tất cả các phạm vi có thể chỉnh sửa trong một tài liệu?

Gọi Document.GetChildNodes(NodeType.EditableRangeStart, true), sau đó đọc thuộc tính EditableRange trên mỗi nút EditableRangeStart được trả về.

Làm sao để tôi biết ai được phép chỉnh sửa một phạm vi nhất định?

Đọc EditableRange.SingleUser (một người dùng cụ thể) và EditableRange.EditorGroup (một nhóm chỉnh sửa EditorType) trên đối tượng facade.

Làm thế nào để tôi loại bỏ hạn chế chỉnh sửa khỏi một phần của tài liệu?

Gọi Remove() trên đối tượng facade EditableRange cho phạm vi đó.

Sự khác nhau giữa EditableRangeStart.EditableRange và EditableRangeEnd.EditableRangeStart là gì?

EditableRangeStart.EditableRange tiếp cận đối tượng facade mô tả toàn bộ phạm vi một cách trực tiếp. EditableRangeEnd.EditableRangeStart quay lại nút đánh dấu bắt đầu tương ứng, từ đó EditableRange có thể được truy cập.


API Reference Tóm tắt

Lớp / EnumMô tả
EditableRangeGiao diện cho một phạm vi có thể chỉnh sửa: Id, SingleUser, EditorGroup, Remove()
EditableRangeStartNút đánh dấu đầu của một phạm vi; Id, EditableRange
EditableRangeEndNút đánh dấu cuối của một phạm vi; Id, EditableRangeStart
EditorTypeEnum các nhóm chỉnh sửa: Administrators, Contributors, Editors, Owners, Everyone, Current, None, Unspecified/Default

Xem thêm

 Tiếng Việt