Microsoft Word zapewnia możliwość dodawania komentarzy do dokumentów Word. Komentarze mogą być pomocne w takich przypadkach, jak sugerowanie ulepszeń w dokumentach lub dzielenie się przemyśleniami na temat tekstu. Mogą zaistnieć sytuacje, w których konieczne będzie programowe zarządzanie komentarzami. W tym celu w tym artykule dowiesz się, jak pracować z komentarzami w dokumentach programu Word przy użyciu języka C++.

Interfejs API języka C++ do pracy z komentarzami w dokumentach programu Word

Aspose.Words for C++ to natywna biblioteka C++, która pozwala tworzyć, czytać, modyfikować i konwertować dokumenty Microsoft Word. Ponadto obsługuje również pracę z komentarzami w plikach DOCX i DOC. Możesz zainstalować API przez NuGet lub pobrać bezpośrednio z sekcji Downloads.

PM> Install-Package Aspose.Words.Cpp

Dodawaj komentarze do dokumentów programu Word przy użyciu języka C++

Aspose.Words for C++ API zapewnia możliwość dodawania komentarzy z nazwiskiem autora, inicjałami oraz datą/godziną. Poniżej przedstawiono kroki dodawania komentarzy do dokumentów programu Word.

Poniższy przykładowy kod ilustruje sposób dodawania komentarzy do dokumentów programu Word przy użyciu języka C++.

// Ścieżki katalogów.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";

// Załaduj plik Worda
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"Sample 1.docx");

// Utwórz instancję klasy DocumentBuilder
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);

// Dodaj komentarz
System::SharedPtr<Comment> comment = System::MakeObject<Comment>(doc, u"Aspose", u"AFFA", System::DateTime::get_Today());
builder->get_CurrentParagraph()->AppendChild(comment);
comment->get_Paragraphs()->Add(System::MakeObject<Paragraph>(doc));
comment->get_FirstParagraph()->get_Runs()->Add(System::MakeObject<Run>(doc, u"Comment text."));

// Zapisz dokument.
doc->Save(outputDataDir + u"AddCommentsToExistingDoc.docx");

Poniżej przedstawiono obraz danych wyjściowych wygenerowanych przez przykładowy kod.

Obraz danych wyjściowych wygenerowanych przez przykładowy kod

Czytaj komentarze z dokumentu programu Word

Poniżej przedstawiono kroki, aby przeczytać komentarze z dokumentów programu Word.

Poniżej przedstawiono przykładowy kod do odczytywania komentarzy z dokumentu programu Word przy użyciu języka C++.

// Ścieżki katalogów.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";

// Załaduj plik Worda
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");

// Pobierz komentarze
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);

// Przejrzyj wszystkie komentarze
for (System::SharedPtr<Comment> comment : System::IterateOver<System::SharedPtr<Comment>>(comments))
{
	// Wydrukuj informacje o komentarzu
	std::cout << comment->get_Author() + u" " + comment->get_DateTime() + u" " + System::StaticCast<Node>(comment)->ToString(SaveFormat::Text);
}

Modyfikuj komentarze w dokumencie programu Word za pomocą C++

Aby zmodyfikować komentarz, pobierz go metodą NodeCollection->idxget(int32t index) i zmień go zgodnie z potrzebami. Poniżej przedstawiono kroki modyfikowania komentarzy w dokumencie programu Word.

Poniższy przykładowy kod pokazuje, jak modyfikować komentarze w dokumencie programu Word przy użyciu języka C++.

// Ścieżki katalogów.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";

// Załaduj plik Worda
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");

// Pobierz komentarze
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);

// Uzyskaj komentarz
System::SharedPtr<Comment> comment = System::DynamicCast<Comment>(comments->idx_get(0));

// Zaktualizuj tekst komentarza
comment->SetText(u"Updated Text");

// Zapisz dokument.
doc->Save(outputDataDir + u"UpdatedComment.docx");

Usuń komentarze z dokumentu programu Word za pomocą C++

Aspose.Words for C++ API zapewnia wiele sposobów usuwania komentarzy z dokumentów programu Word. W tej sekcji dowiesz się, jak usunąć określony komentarz, komentarze autora i wszystkie komentarze za pomocą C++.

Usuń określony komentarz

Poniżej przedstawiono kroki, aby usunąć określony komentarz.

Poniższy przykładowy kod pokazuje, jak usunąć określony komentarz z dokumentu programu Word przy użyciu języka C++.

// Ścieżki katalogów.
System::String sourceDataDir = u"D:\\Work\\Aspose\\01_SourceDirectory\\";
System::String outputDataDir = u"D:\\Work\\Aspose\\02_OutputDirectory\\";

// Załaduj plik Worda
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");

// Pobierz komentarze
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);

// Uzyskaj komentarz
System::SharedPtr<Comment> comment = System::DynamicCast<Comment>(comments->idx_get(2));

// Usuń komentarz
comment->Remove();

// Zapisz dokument.
doc->Save(outputDataDir + u"DeleteSpecificComments.docx");

Usuwanie komentarzy według autora

Poniżej przedstawiono kroki usuwania komentarzy według autora.

Poniżej znajduje się przykładowy kod służący do usuwania komentarzy według autora przy użyciu języka C++.

// Ścieżki katalogów.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";

// Załaduj plik Worda
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");

// Pobierz komentarze
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);

// Przejrzyj wszystkie komentarze i usuń te napisane przez autora „Aspose”.
for (int32_t i = comments->get_Count() - 1; i >= 0; i--)
{
	System::SharedPtr<Comment> comment = System::DynamicCast<Comment>(comments->idx_get(i));
	if (comment->get_Author() == u"Aspose")
	{
		comment->Remove();
	}
}

// Zapisz dokument.
doc->Save(outputDataDir + u"DeleteCommentsByAuthor.docx");

Usuń wszystkie komentarze

Zamiast usuwać pojedyncze komentarze, możesz usunąć wszystkie komentarze naraz za pomocą metody NodeCollection->Clear(). Poniżej przedstawiono kroki, aby usunąć wszystkie komentarze z dokumentu programu Word.

Poniższy przykładowy kod ilustruje sposób usuwania wszystkich komentarzy z dokumentu programu Word przy użyciu języka C++.

// Ścieżki katalogów.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";

// Załaduj plik Worda
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");

// Pobierz komentarze
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);

// Usuń wszystkie komentarze.
comments->Clear();

// Zapisz dokument.
doc->Save(outputDataDir + u"DeleteAllComments.docx");

Uzyskaj bezpłatną licencję

Możesz wypróbować interfejs API bez ograniczeń ewaluacyjnych, prosząc o bezpłatną licencję tymczasową.

Wniosek

W tym artykule nauczyłeś się, jak pracować z komentarzami w dokumentach programu Word przy użyciu języka C++. W szczególności nauczyłeś się dodawać, czytać, edytować i usuwać komentarze. Ponadto widziałeś, jak usunąć określony komentarz, komentarze autora i wszystkie komentarze za pomocą Aspose.Words for C++ API. Interfejs API zapewnia ogromną liczbę dodatkowych funkcji do automatyzacji zadań związanych z programem Word. Możesz szczegółowo zapoznać się z interfejsem API, odwiedzając oficjalną dokumentację. W przypadku jakichkolwiek pytań prosimy o kontakt na naszym bezpłatnym forum pomocy technicznej.

Zobacz też