Revisions
Revisions
Hướng dẫn này cho thấy cách kiểm tra, chấp nhận, từ chối và ghi lại các thay đổi được theo dõi trong tài liệu Word bằng Aspose.Words FOSS cho .NET. Aspose.Words FOSS cho .NET có thể kiểm tra, chấp nhận và từ chối các thay đổi được theo dõi (sửa đổi) trong tài liệu Word thông qua Document.Revisions, và có thể ghi lại các thay đổi được theo dõi mới khi chỉnh sửa qua Document.StartTrackRevisions()/StopTrackRevisions().
Đọc các thay đổi được theo dõi
Document.Revisions trả về một RevisionCollection của mọi Revision trong tài liệu; Range.Revisions giới hạn cùng điều đó trong một phạm vi cụ thể. Mỗi Revision báo cáo ai đã thực hiện thay đổi và khi nào (Author, DateTime), loại thay đổi là gì (RevisionType: Insertion, Deletion, FormatChange, StyleDefinitionChange, hoặc Moving), và nơi áp dụng (ParentNode, ParentStyle). Document.HasRevisions cho bạn biết ngay từ đầu liệu tài liệu đã tải có bất kỳ thay đổi được theo dõi nào hay không.
Chấp nhận và Từ chối Sửa đổi
Gọi Revision.Accept() hoặc Revision.Reject() để giải quyết một thay đổi được theo dõi duy nhất, hoặc làm việc với toàn bộ bộ sưu tập cùng một lúc bằng RevisionCollection.AcceptAll() / RejectAll(). Document.AcceptAllRevisions() là một tiện ích ở cấp độ tài liệu cho phép chấp nhận mọi sửa đổi trong một lần gọi. Để chấp nhận hoặc từ chối một tập con một cách chọn lọc, triển khai IRevisionCriteria.IsMatch(revision) và truyền nó vào RevisionCollection.Accept(criteria) hoặc Reject(criteria).
Nhóm Sửa đổi
Các phiên bản liên tiếp từ cùng một tác giả và cùng loại được hiển thị cùng nhau dưới dạng RevisionGroup — có thể truy cập qua Revision.Group cho một phiên bản duy nhất, hoặc RevisionCollection.Groups (một RevisionGroupCollection) cho mỗi nhóm trong tài liệu. Mỗi nhóm báo cáo Text, Author, và RevisionType kết hợp của nó.
Ghi lại các thay đổi được theo dõi mới
Gọi Document.StartTrackRevisions(author) hoặc phiên bản quá tải StartTrackRevisions(author, dateTime) trước khi thực hiện chỉnh sửa để các thay đổi tiếp theo được ghi lại dưới dạng phiên bản thay vì được áp dụng trực tiếp; gọi StopTrackRevisions() để kết thúc việc theo dõi. Thuộc tính Document.TrackRevisions phản ánh việc theo dõi hiện đang hoạt động hay không.
Xem nội dung gốc và nội dung cuối cùng
Document.RevisionsView kiểm soát việc tài liệu được hiển thị ở trạng thái Original hay Final (một giá trị RevisionsView) khi có các phiên bản, mà không làm thay đổi dữ liệu phiên bản nền.
Mẹo và các thực hành tốt nhất
- Kiểm tra
Document.HasRevisionstrước khi lặpDocument.Revisionsđể bỏ qua công việc không cần thiết trên các tài liệu không có thay đổi được theo dõi. - Ưu tiên
RevisionCollection.Accept(criteria)/Reject(criteria)với mộtIRevisionCriteriatùy chỉnh hơn việc lọc thủ công và gọiRevision.Accept()từng cái một. RevisionGrouphữu ích cho việc trình bày tóm tắt dễ đọc về các thay đổi — việc nhóm các phiên bản liên tiếp cùng tác giả, cùng loại tránh việc coi mỗi ký tự được chèn như một mục riêng biệt.- Luôn kết hợp
StartTrackRevisions()với một lời gọiStopTrackRevisions()sau này để các sửa đổi không liên quan không bị ghi lại như là thay đổi được theo dõi.
Các vấn đề thường gặp
| Vấn đề | Nguyên nhân | Cách khắc phục |
|---|---|---|
Document.Revisions trống sau khi chỉnh sửa | StartTrackRevisions() chưa bao giờ được gọi trước khi chỉnh sửa | Gọi StartTrackRevisions(author) trước khi thực hiện các chỉnh sửa bạn muốn theo dõi |
RevisionCollection.Accept(criteria) không chấp nhận gì | IRevisionCriteria.IsMatch() không khớp với bất kỳ phiên bản nào | Xác minh logic tiêu chí dựa trên các giá trị thực tế Revision.Author/RevisionType/ParentNode trước tiên |
Tài liệu vẫn hiển thị đánh dấu thay đổi đã theo dõi sau AcceptAllRevisions() | Xem trạng thái, không phải dữ liệu phiên bản | Đặt Document.RevisionsView thành Final nếu bạn cần chế độ xem nội dung đã giải quyết |
FAQ
Làm thế nào để kiểm tra xem tài liệu có bất kỳ thay đổi được theo dõi nào không?
Đọc Document.HasRevisions — nó là true nếu Document.Revisions chứa ít nhất một Revision.
Sự khác biệt giữa Revision.Accept() và RevisionCollection.AcceptAll() là gì?
Revision.Accept() giải quyết một phiên bản cụ thể; RevisionCollection.AcceptAll() (hoặc Document.AcceptAllRevisions()) giải quyết mọi phiên bản trong bộ sưu tập cùng một lúc.
Làm thế nào để tôi chấp nhận chỉ các sửa đổi được thực hiện bởi một tác giả cụ thể?
Triển khai IRevisionCriteria.IsMatch(revision) để kiểm tra revision.Author, sau đó gọi RevisionCollection.Accept(criteria) với triển khai đó.
Làm thế nào để tôi ghi lại các chỉnh sửa của mình dưới dạng thay đổi được theo dõi?
Gọi Document.StartTrackRevisions(author) trước khi thực hiện các chỉnh sửa, sau đó Document.StopTrackRevisions() khi xong.
Có những loại sửa đổi nào?
RevisionType định nghĩa Insertion, Deletion, FormatChange, StyleDefinitionChange và Moving.
API Reference Tóm tắt
| Lớp / Phương thức | Mô tả |
|---|---|
Document.Revisions | RevisionCollection của tất cả các thay đổi đã theo dõi trong tài liệu |
Revision | Một thay đổi được theo dõi: Author, DateTime, RevisionType, Accept(), Reject() |
RevisionCollection | AcceptAll(), RejectAll(), Accept(criteria), Reject(criteria), Groups |
RevisionGroup / RevisionGroupCollection | Các phiên bản liên tiếp cùng tác giả, cùng loại được nhóm lại với nhau |
IRevisionCriteria | Tiên đề tùy chỉnh (IsMatch(revision)) để chấp nhận/từ chối có chọn lọc |
Document.StartTrackRevisions() / StopTrackRevisions() | Ghi lại các chỉnh sửa mới dưới dạng thay đổi được theo dõi |
Document.RevisionsView | Original hoặc Final trình bày nội dung đã được chỉnh sửa |