Revisions
Revisions
Ten przewodnik pokazuje, jak przeglądać, akceptować, odrzucać i rejestrować zmiany śledzone w dokumencie Word przy użyciu Aspose.Words FOSS dla .NET. Aspose.Words FOSS dla .NET może przeglądać, akceptować i odrzucać zmiany śledzone (rewizje) w dokumencie Word za pośrednictwem Document.Revisions, oraz może rejestrować nowe zmiany śledzone podczas edycji za pomocą Document.StartTrackRevisions()/StopTrackRevisions().
Odczytywanie zmian śledzonych
Document.Revisions zwraca RevisionCollection każdego Revision w dokumencie; Range.Revisions ogranicza to samo do określonego zakresu. Każdy Revision informuje, kto wprowadził zmianę i kiedy (Author, DateTime), jakiego rodzaju jest to zmiana (RevisionType: Insertion, Deletion, FormatChange, StyleDefinitionChange lub Moving), oraz gdzie ma zastosowanie (ParentNode, ParentStyle). Document.HasRevisions informuje z góry, czy załadowany dokument zawiera jakiekolwiek zmiany śledzone.
Akceptowanie i odrzucanie rewizji
Wywołaj Revision.Accept() lub Revision.Reject(), aby rozwiązać pojedynczą zmianę śledzoną, lub pracuj na całej kolekcji jednocześnie przy użyciu RevisionCollection.AcceptAll() / RejectAll(). Document.AcceptAllRevisions() jest udogodnieniem na poziomie dokumentu, które akceptuje każdą rewizję w jednym wywołaniu. Aby selektywnie akceptować lub odrzucać podzbiór, zaimplementuj IRevisionCriteria.IsMatch(revision) i przekaż go do RevisionCollection.Accept(criteria) lub Reject(criteria).
Grupy rewizji
Kolejne rewizje od tego samego autora i tego samego typu są wyświetlane razem jako RevisionGroup — dostępne poprzez Revision.Group dla pojedynczej rewizji lub RevisionCollection.Groups (a RevisionGroupCollection) dla każdej grupy w dokumencie. Każda grupa raportuje swoje połączone Text, Author i RevisionType.
Rejestrowanie nowych śledzonych zmian
Wywołaj Document.StartTrackRevisions(author) lub przeciążenie StartTrackRevisions(author, dateTime) przed wprowadzaniem edycji, aby kolejne zmiany były rejestrowane jako rewizje, a nie stosowane bezpośrednio; wywołaj StopTrackRevisions(), aby zakończyć śledzenie. Właściwość Document.TrackRevisions odzwierciedla, czy śledzenie jest aktualnie aktywne.
Wyświetlanie oryginalnej vs. końcowej treści
Document.RevisionsView kontroluje, czy dokument jest wyświetlany w stanie Original czy Final (wartość RevisionsView), gdy obecne są rewizje, bez zmiany podstawowych danych rewizji.
Wskazówki i najlepsze praktyki
- Sprawdź
Document.HasRevisionsprzed iterowaniemDocument.Revisions, aby pominąć zbędną pracę przy dokumentach bez śledzonych zmian. - Preferuj
RevisionCollection.Accept(criteria)/Reject(criteria)z niestandardowymIRevisionCriteriazamiast ręcznego filtrowania i wywoływaniaRevision.Accept()pojedynczo. RevisionGroupjest przydatny do przedstawienia czytelnego podsumowania zmian — grupowanie kolejnych rewizji tego samego autora i tego samego typu zapobiega traktowaniu każdego wstawionego znaku jako osobnego wpisu.- Zawsze łącz
StartTrackRevisions()z późniejszym wywołaniemStopTrackRevisions(), aby niepowiązane edycje nie były rejestrowane jako zmiany śledzone.
Typowe problemy
| Problem | Przyczyna | Naprawa |
|---|---|---|
Document.Revisions jest pusty po edycjach | StartTrackRevisions() nigdy nie został wywołany przed edycją | Wywołaj StartTrackRevisions(author) przed wprowadzaniem edycji, które chcesz śledzić |
RevisionCollection.Accept(criteria) nie przyjmuje nic | IRevisionCriteria.IsMatch() nie pasuje do żadnej wersji | Najpierw zweryfikuj logikę kryteriów względem rzeczywistych wartości Revision.Author/RevisionType/ParentNode |
Dokument nadal wyświetla oznaczenia zmian śledzonych po AcceptAllRevisions() | Wyświetl stan, a nie dane wersji | Ustaw Document.RevisionsView na Final, jeśli potrzebujesz widoku rozwiązanej treści |
FAQ
Jak sprawdzić, czy dokument zawiera jakiekolwiek zmiany śledzone?
Przeczytaj Document.HasRevisions — jest true, jeśli Document.Revisions zawiera co najmniej jeden Revision.
Jaka jest różnica między Revision.Accept() a RevisionCollection.AcceptAll()?
Revision.Accept() rozwiązuje jedną konkretną rewizję; RevisionCollection.AcceptAll() (lub Document.AcceptAllRevisions()) rozwiązuje wszystkie rewizje w kolekcji jednocześnie.
Jak zaakceptować tylko poprawki wprowadzone przez określonego autora?
Zaimplementuj IRevisionCriteria.IsMatch(revision), aby sprawdzić revision.Author, a następnie wywołaj RevisionCollection.Accept(criteria) z tą implementacją.
Jak zapisać moje własne edycje jako zmiany śledzone?
Wywołaj Document.StartTrackRevisions(author) przed wprowadzeniem edycji, a następnie Document.StopTrackRevisions(), gdy skończysz.
Jakie typy rewizji istnieją?
RevisionType definiuje Insertion, Deletion, FormatChange, StyleDefinitionChange i Moving.
API Reference Podsumowanie
| Klasa / Metoda | Opis |
|---|---|
Document.Revisions | RevisionCollection wszystkich zmian śledzonych w dokumencie |
Revision | Jedna śledzona zmiana: Author, DateTime, RevisionType, Accept(), Reject() |
RevisionCollection | AcceptAll(), RejectAll(), Accept(criteria), Reject(criteria), Groups |
RevisionGroup / RevisionGroupCollection | Kolejne poprawki tego samego autora i tego samego typu grupowane razem |
IRevisionCriteria | Niestandardowy predykat (IsMatch(revision)) do selektywnego akceptowania/odrzucania |
Document.StartTrackRevisions() / StopTrackRevisions() | Rejestruj nowe edycje jako zmiany śledzone |
Document.RevisionsView | Original lub Final prezentacja zrewidowanej treści |