Aplikace Microsoft Word vám poskytuje možnost přidávat komentáře k dokumentům aplikace Word. Komentáře mohou být užitečné v případech, jako je navrhování vylepšení v dokumentech nebo sdílení názorů na text. Mohou nastat situace, kdy budete muset spravovat komentáře programově. Za tímto účelem vás tento článek naučí, jak pracovat s komentáři v dokumentech aplikace Word pomocí C++.

C++ API pro práci s komentáři v dokumentech aplikace Word

Aspose.Words for C++ je nativní knihovna C++, která umožňuje vytvářet, číst, upravovat a převádět dokumenty Microsoft Word. Kromě toho také podporuje práci s komentáři v souborech DOCX a DOC. Rozhraní API můžete nainstalovat buď prostřednictvím NuGet, nebo si jej stáhnout přímo ze sekce Downloads.

PM> Install-Package Aspose.Words.Cpp

Přidejte komentáře k dokumentům aplikace Word pomocí C++

Aspose.Words for C++ API poskytuje možnost přidávat komentáře se jménem autora, iniciálami a datem/časem. Následují kroky pro přidání komentářů do dokumentů aplikace Word.

Následující ukázkový kód ukazuje, jak přidat komentáře do dokumentů aplikace Word pomocí C++.

// Adresářové cesty.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";

// Načtěte soubor aplikace Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"Sample 1.docx");

// Vytvořte instanci třídy DocumentBuilder
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);

// Přidat komentář
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."));

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

Následuje obrázek výstupu generovaného ukázkovým kódem.

Obrázek výstupu generovaného ukázkovým kódem

Přečtěte si komentáře z dokumentu aplikace Word

Následují kroky ke čtení komentářů z dokumentů aplikace Word.

Následuje ukázkový kód pro čtení komentářů z dokumentu aplikace Word pomocí C++.

// Adresářové cesty.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";

// Načtěte soubor aplikace Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");

// Načíst komentáře
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);

// Projděte všechny komentáře
for (System::SharedPtr<Comment> comment : System::IterateOver<System::SharedPtr<Comment>>(comments))
{
	// Vytiskněte informace o komentáři
	std::cout << comment->get_Author() + u" " + comment->get_DateTime() + u" " + System::StaticCast<Node>(comment)->ToString(SaveFormat::Text);
}

Upravte komentáře v dokumentu aplikace Word pomocí C++

Chcete-li upravit komentář, načtěte jej pomocí metody NodeCollection->idxget(int32t index) a změňte jej podle svých potřeb. Následují kroky k úpravě komentářů v dokumentu aplikace Word.

Následující ukázkový kód ukazuje, jak upravit komentáře v dokumentu aplikace Word pomocí C++.

// Adresářové cesty.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";

// Načtěte soubor aplikace Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");

// Načíst komentáře
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);

// Získejte komentář
System::SharedPtr<Comment> comment = System::DynamicCast<Comment>(comments->idx_get(0));

// Aktualizovat text komentáře
comment->SetText(u"Updated Text");

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

Odstraňte komentáře z dokumentu aplikace Word pomocí C++

Aspose.Words for C++ API poskytuje několik způsobů, jak odstranit komentáře z dokumentů aplikace Word. V této části se dozvíte, jak odstranit konkrétní komentář, komentáře podle autora a všechny komentáře pomocí C++.

Smazat konkrétní komentář

Následují kroky k odstranění konkrétního komentáře.

Následující ukázkový kód ukazuje, jak odstranit konkrétní komentář z dokumentu aplikace Word pomocí C++.

// Adresářové cesty.
System::String sourceDataDir = u"D:\\Work\\Aspose\\01_SourceDirectory\\";
System::String outputDataDir = u"D:\\Work\\Aspose\\02_OutputDirectory\\";

// Načtěte soubor aplikace Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");

// Načíst komentáře
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);

// Získejte komentář
System::SharedPtr<Comment> comment = System::DynamicCast<Comment>(comments->idx_get(2));

// Odebrat komentář
comment->Remove();

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

Mazání komentářů podle autora

Následují kroky k odstranění komentářů podle autora.

Následuje ukázkový kód pro odstranění komentářů podle autora pomocí C++.

// Adresářové cesty.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";

// Načtěte soubor aplikace Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");

// Načíst komentáře
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);

// Projděte všechny komentáře a odstraňte ty, které napsal autor „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();
	}
}

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

Smazat všechny komentáře

Místo mazání jednotlivých komentářů můžete odstranit všechny komentáře najednou pomocí metody NodeCollection->Clear(). Následují kroky k odstranění všech komentářů z dokumentu aplikace Word.

Následující ukázkový kód ukazuje, jak odstranit všechny komentáře z dokumentu aplikace Word pomocí C++.

// Adresářové cesty.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";

// Načtěte soubor aplikace Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");

// Načíst komentáře
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);

// Odebrat všechny komentáře.
comments->Clear();

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

Získejte bezplatnou licenci

Rozhraní API můžete vyzkoušet bez omezení hodnocení tím, že požádáte o bezplatnou dočasnou licenci.

Závěr

V tomto článku jste se naučili pracovat s komentáři v dokumentech Wordu pomocí C++. Konkrétně jste se naučili přidávat, číst, upravovat a mazat komentáře. Dále jste viděli, jak odstranit konkrétní komentář, komentáře podle autora a všechny komentáře pomocí Aspose.Words for C++ API. Rozhraní API poskytuje velké množství dalších funkcí pro automatizaci úloh souvisejících s aplikací Word. Rozhraní API můžete podrobně prozkoumat na oficiální dokumentaci. V případě jakýchkoli dotazů nás neváhejte kontaktovat na našem bezplatném fóru podpory.

Viz také