Praca z komentarzami
Spróbuj online
Możesz wypróbować tę funkcjonalność w naszym Bezpłatne usuwanie adnotacji online.
Aspose.Words umożliwia użytkownikom pracę z komentarzami – komentarze w dokumencie w Aspose.Words są reprezentowane przez klasę Comment. Użyj także klas CommentRangeStart i CommentRangeEnd, aby określić region tekstu, który powinien być powiązany z komentarzem.
Dodaj komentarz
Aspose.Words umożliwia dodawanie komentarzy na kilka sposobów:
- Korzystanie z klasy Comment
- Wykorzystanie klas CommentRangeStart i CommentRangeEnd
Poniższy przykład kodu pokazuje, jak dodać komentarz do akapitu przy użyciu klasy Comment:
Poniższy przykład kodu pokazuje, jak dodać komentarz do akapitu przy użyciu obszaru tekstu oraz klas CommentRangeStart i CommentRangeEnd:
Wyodrębnij lub usuń komentarze
Używanie komentarzy w dokumencie programu Word (oprócz funkcji śledzenia zmian) jest powszechną praktyką podczas przeglądania dokumentów, zwłaszcza gdy jest wielu recenzentów. Mogą zaistnieć sytuacje, w których jedyne, czego potrzebujesz z dokumentu, to komentarze. Załóżmy, że chcesz wygenerować listę wyników przeglądu, a może zebrałeś wszystkie przydatne informacje z dokumentu i po prostu chcesz usunąć niepotrzebne komentarze. Możesz wyświetlić lub usunąć komentarze konkretnego recenzenta.
W tym przykładzie przyjrzymy się prostym metodom gromadzenia informacji z komentarzy w dokumencie i usuwania komentarzy z dokumentu. W szczególności omówimy, jak:
- Wyodrębnij wszystkie komentarze z dokumentu lub tylko te, które dodał konkretny autor
- Usuń wszystkie komentarze z dokumentu lub tylko od konkretnego autora
Jak wyodrębnić lub usunąć komentarze
Kod w tym przykładzie jest w rzeczywistości dość prosty i wszystkie metody opierają się na tym samym podejściu. Komentarz w dokumencie Word jest reprezentowany przez obiekt Comment w modelu obiektowym dokumentu Aspose.Words. Aby zebrać wszystkie komentarze w dokumencie, użyj metody GetChildNodes z pierwszym parametrem ustawionym na NodeType.Comment. Upewnij się, że drugi parametr metody GetChildNodes jest ustawiony na true: zmusza to GetChildNodes do rekurencyjnego wybierania wszystkich węzłów podrzędnych, a nie tylko zbierania bezpośrednich węzłów podrzędnych.
Aby zilustrować, jak wyodrębnić i usunąć komentarze z dokumentu, wykonamy następujące kroki:
- Otwórz dokument Word, korzystając z klasy Document
- Pobierz wszystkie komentarze z dokumentu do kolekcji
- Aby wyodrębnić komentarze:
- Przejrzyj kolekcję za pomocą operatora fore
- Wyodrębnij i wypisz nazwisko autora, datę i godzinę oraz treść wszystkich komentarzy
- Wyodrębnij i podaj nazwisko autora, datę i godzinę oraz treść komentarzy napisanych przez konkretnego autora, w tym przypadku autora “ks”
- Aby usunąć komentarze:
- Przejdź wstecz przez kolekcję, używając operatora for
- Usuń komentarze
- Zapisz zmiany
Jak wyodrębnić wszystkie komentarze
Metoda GetChildNodes jest bardzo przydatna i można z niej skorzystać za każdym razem, gdy trzeba uzyskać listę węzłów dokumentu dowolnego typu. Powstała kolekcja nie powoduje natychmiastowego narzutu, ponieważ węzły są wybierane do tej kolekcji tylko wtedy, gdy wyliczasz zawarte w niej elementy lub uzyskujesz do nich dostęp.
Poniższy przykład kodu pokazuje, jak wyodrębnić nazwisko autora, datę i godzinę oraz tekst wszystkich komentarzy w dokumencie:
Jak wyodrębnić komentarze określonego autora
Po wybraniu węzłów Comment do kolekcji wystarczy wyodrębnić potrzebne informacje. W tym przykładzie inicjały autora, data, godzina i zwykły tekst komentarza są połączone w jeden ciąg; zamiast tego możesz zapisać go w inny sposób.
Przeciążona metoda, która wyodrębnia komentarze konkretnego autora, jest prawie taka sama, po prostu sprawdza nazwisko autora przed dodaniem informacji do tablicy.
Poniższy przykład kodu pokazuje, jak wyodrębnić nazwisko autora, datę i godzinę oraz tekst komentarzy określonego autora:
Jak usunąć komentarze
Jeśli usuwasz wszystkie komentarze, nie ma potrzeby przeglądania kolekcji, usuwając komentarze jeden po drugim. Możesz je usunąć, wywołując metodę Clear w kolekcji komentarzy.
Poniższy przykład kodu pokazuje, jak usunąć wszystkie komentarze z dokumentu:
Kiedy musisz selektywnie usuwać komentarze, proces staje się bardziej podobny do kodu, którego używaliśmy do wyodrębniania komentarzy.
Poniższy przykład kodu pokazuje, jak usunąć komentarze określonego autora:
Najważniejszą kwestią, którą należy tutaj podkreślić, jest użycie operatora for. W przeciwieństwie do prostego wyodrębniania, tutaj chcesz usunąć komentarz. Odpowiednią sztuczką jest iteracja kolekcji wstecz od ostatniego komentarza do pierwszego. Dzieje się tak dlatego, że jeśli zaczniesz od końca i będziesz się cofać, indeks poprzednich pozycji pozostanie niezmieniony i będziesz mógł wrócić do pierwszej pozycji w kolekcji.
Poniższy przykład kodu pokazuje metody wyodrębniania i usuwania komentarzy:
Jak usunąć komentarz pomiędzy CommentRangeStart i CommentRangeEnd
Za pomocą Aspose.Words możesz także usuwać komentarze pomiędzy węzłami CommentRangeStart i CommentRangeEnd.
Poniższy przykład kodu pokazuje, jak usunąć tekst między CommentRangeStart i CommentRangeEnd:
Dodaj lub usuń odpowiedź na komentarz
Metoda AddReply dodaje odpowiedź na ten komentarz. Należy pamiętać, że ze względu na istniejące ograniczenia Microsoft Office w dokumencie dozwolony jest tylko 1 poziom odpowiedzi. Jeśli ta metoda zostanie wywołana w istniejącym komentarzu odpowiedzi, zostanie zgłoszony wyjątek typu InvalidOperationException.
Możesz użyć metody RemoveReply, aby usunąć określoną odpowiedź na ten komentarz.
Poniższy przykład kodu pokazuje, jak dodać odpowiedź do komentarza i usunąć odpowiedź komentarza:
Przeczytaj odpowiedź na komentarz
Właściwość Replies zwraca kolekcję obiektów Comment, które są bezpośrednimi dziećmi określonego komentarza.
Poniższy przykład kodu pokazuje, jak przeglądać odpowiedzi na komentarze i je rozwiązywać: