Làm việc với chú thích
Thử trực tuyến
Bạn có thể thử chức năng này với Xóa chú thích trực tuyến miễn phí của chúng tôi.
Aspose.Words cho phép người dùng làm việc với các nhận xét – các nhận xét trong tài liệu ở Aspose.Words được thể hiện bằng lớp Comment. Đồng thời sử dụng các lớp CommentRangeStart và CommentRangeEnd để chỉ định vùng văn bản cần được liên kết với nhận xét.
Thêm một bình luận
Aspose.Words cho phép bạn thêm nhận xét theo nhiều cách:
- Sử dụng lớp Comment
- Sử dụng lớp CommentRangeStart và CommentRangeEnd
Ví dụ mã sau đây cho thấy cách thêm nhận xét vào đoạn văn bằng lớp Comment:
Ví dụ mã sau đây cho thấy cách thêm nhận xét vào một đoạn văn bằng cách sử dụng một vùng văn bản và các lớp CommentRangeStart và CommentRangeEnd:
Trích xuất hoặc xóa bình luận
Sử dụng Nhận xét trong tài liệu Word (ngoài Theo dõi Thay đổi) là cách làm phổ biến khi xem xét tài liệu, đặc biệt khi có nhiều người đánh giá. Có thể có những tình huống mà thứ duy nhất bạn cần từ một tài liệu là các nhận xét. Giả sử bạn muốn tạo danh sách các kết quả đánh giá hoặc có thể bạn đã thu thập tất cả thông tin hữu ích từ tài liệu và bạn chỉ muốn xóa các nhận xét không cần thiết. Bạn có thể muốn xem hoặc xóa nhận xét của một người đánh giá cụ thể.
Trong mẫu này, chúng ta sẽ xem xét một số phương pháp đơn giản để thu thập thông tin từ các nhận xét trong tài liệu và để xóa nhận xét khỏi tài liệu. Cụ thể chúng tôi sẽ đề cập đến cách:
- Trích xuất tất cả các nhận xét từ một tài liệu hoặc chỉ những nhận xét của một tác giả cụ thể.
- Xóa tất cả các nhận xét khỏi một tài liệu hoặc chỉ từ một tác giả cụ thể.
Cách trích xuất hoặc xóa bình luận
Mã trong mẫu này thực sự khá đơn giản và tất cả các phương pháp đều dựa trên cùng một cách tiếp cận. Nhận xét trong tài liệu Word được thể hiện bằng đối tượng Comment trong mô hình đối tượng tài liệu Aspose.Words. Để thu thập tất cả nhận xét trong tài liệu, hãy sử dụng phương thức get_child_nodes với tham số đầu tiên được đặt thành NodeType.COMMENT. Đảm bảo rằng tham số thứ hai của phương thức get_child_nodes được đặt thành true: điều này buộc get_child_nodes phải chọn đệ quy từ tất cả các nút con, thay vì chỉ thu thập các nút con ngay lập tức.
Để minh họa cách trích xuất và xóa nhận xét khỏi tài liệu, chúng ta sẽ thực hiện các bước sau:
- Mở tài liệu Word bằng lớp Document
- Đưa tất cả các nhận xét từ tài liệu vào một bộ sưu tập
- Trích xuất ý kiến:
- Duyệt qua bộ sưu tập bằng toán tử foreach
- Trích xuất và liệt kê tên tác giả, ngày giờ và nội dung của tất cả các bình luận
- Trích xuất và liệt kê tên tác giả, ngày giờ và nội dung nhận xét của một tác giả cụ thể, trong trường hợp này là tác giả ‘ks’
- Để xóa bình luận:
- Quay ngược lại bộ sưu tập bằng toán tử for
- Xóa bình luận
- Lưu các thay đổi
Cách trích xuất tất cả bình luận
Phương pháp get_child_nodes rất hữu ích và bạn có thể sử dụng nó mỗi khi cần lấy danh sách các nút tài liệu thuộc bất kỳ loại nào. Bộ sưu tập kết quả không tạo ra chi phí chung ngay lập tức vì các nút chỉ được chọn vào bộ sưu tập này khi bạn liệt kê hoặc truy cập các mục trong đó.
Ví dụ mã sau đây cho thấy cách trích xuất tên tác giả, ngày & giờ và văn bản của tất cả nhận xét trong tài liệu:
Cách trích xuất nhận xét của một tác giả được chỉ định
Sau khi bạn đã chọn các nút Comment vào bộ sưu tập, tất cả những gì bạn phải làm là trích xuất thông tin bạn cần. Trong mẫu này, tên viết tắt của tác giả, ngày, giờ và văn bản thuần túy của nhận xét được kết hợp thành một chuỗi; thay vào đó bạn có thể chọn lưu trữ nó theo một số cách khác.
Phương thức nạp chồng để trích xuất Nhận xét từ một tác giả cụ thể gần như giống nhau, nó chỉ kiểm tra tên tác giả trước khi thêm thông tin vào mảng.
Ví dụ mã sau đây cho thấy cách trích xuất tên tác giả, ngày & giờ và nội dung nhận xét của tác giả được chỉ định:
Cách xóa bình luận
Nếu bạn đang xóa tất cả các nhận xét, bạn không cần phải di chuyển qua bộ sưu tập để xóa từng nhận xét một; bạn có thể xóa chúng bằng cách gọi clear trên bộ sưu tập nhận xét.
Ví dụ về mã sau đây cho thấy cách xóa tất cả nhận xét trong tài liệu:
Khi bạn cần xóa nhận xét có chọn lọc, quy trình sẽ trở nên giống với mã chúng tôi đã sử dụng để trích xuất nhận xét.
Ví dụ mã sau đây cho thấy cách xóa nhận xét của tác giả được chỉ định:
Điểm chính cần nhấn mạnh ở đây là việc sử dụng toán tử for. Không giống như cách trích xuất đơn giản, ở đây bạn muốn xóa một bình luận. Một thủ thuật phù hợp là lặp lại bộ sưu tập từ Comment cuối cùng đến bộ sưu tập đầu tiên. Lý do cho điều này là nếu bạn bắt đầu từ cuối và di chuyển về phía sau, chỉ mục của các mục trước đó vẫn không thay đổi và bạn có thể quay lại mục đầu tiên trong bộ sưu tập.
Ví dụ mã sau đây hiển thị các phương pháp trích xuất và xóa nhận xét:
Cách xóa nhận xét giữa CommentRangeStart và CommentRangeEnd
Sử dụng Aspose.Words, bạn cũng có thể xóa nhận xét giữa các nút CommentRangeStart và CommentRangeEnd.
Ví dụ mã sau đây cho thấy cách xóa văn bản giữa CommentRangeStart và CommentRangeEnd:
# Open the document.
doc = aw.Document(docs_base.my_dir + "Comments.docx")
commentStart = doc.get_child(aw.NodeType.COMMENT_RANGE_START, 0, True).as_comment_range_start()
commentEnd = doc.get_child(aw.NodeType.COMMENT_RANGE_END, 0, True).as_comment_range_end()
currentNode = commentStart
isRemoving = True
while (currentNode != None and isRemoving) :
if (currentNode.node_type == aw.NodeType.COMMENT_RANGE_END) :
isRemoving = False
nextNode = currentNode.next_pre_order(doc)
currentNode.remove()
currentNode = nextNode
# Save the document.
doc.save(docs_base.artifacts_dir + "WorkingWithComments.remove_region_text.docx")
Thêm hoặc xóa câu trả lời của bình luận
Phương thức add_reply thêm câu trả lời cho nhận xét này. Xin lưu ý rằng do các giới hạn hiện tại của Microsoft Office, chỉ cho phép 1 cấp độ trả lời trong tài liệu. Một ngoại lệ của kiểu InvalidOperationException sẽ xuất hiện nếu phương thức này được gọi trên nhận xét Trả lời hiện có.
Bạn có thể sử dụng phương pháp remove_reply để xóa câu trả lời được chỉ định cho nhận xét này.
Ví dụ mã sau đây cho thấy cách thêm câu trả lời cho nhận xét và xóa câu trả lời của nhận xét:
Đọc phản hồi của bình luận
Thuộc tính replies trả về một tập hợp các đối tượng Comment là con trực tiếp của nhận xét đã chỉ định.
Ví dụ về mã sau đây cho thấy cách lặp qua các câu trả lời của nhận xét và giải quyết chúng: