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
- Přidejte komentáře k dokumentům aplikace Word pomocí C++
- Přečtěte si komentáře z dokumentu aplikace Word
- Upravte komentáře v dokumentu aplikace Word pomocí C++
- Odstraňte komentáře z dokumentu 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.
- Nejprve načtěte dokument aplikace Word pomocí třídy Document.
- Vytvořte instanci třídy DocumentBuilder předáním objektu Document vytvořeného v předchozím kroku.
- Vytvořte komentář pomocí třídy Comment.
- Přidejte komentář k dokumentu pomocí DocumentBuilder->getCurrentParagraph()->AppendChild(System::SharedPtrAspose::Words::Node newChild) metoda.
- Nakonec dokument uložte pomocí metody Document->Save(System::String fileName).
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.
Přečtěte si komentáře z dokumentu aplikace Word
Následují kroky ke čtení komentářů z dokumentů aplikace Word.
- Načtěte dokument aplikace Word pomocí třídy Document.
- Načtěte komentáře pomocí metody Document->GetChildNodes(Aspose::Words::NodeType nodeType, bool isDeep).
- Procházejte komentáře a získejte informace o jednotlivých komentářích.
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.
- Nejprve načtěte dokument aplikace Word pomocí třídy Document.
- Načtěte komentáře pomocí metody Document->GetChildNodes(Aspose::Words::NodeType nodeType, bool isDeep).
- Získejte požadovaný komentář pomocí metody NodeCollection->idxget(int32t index) a přetypováním výsledku na Comment.
- Aktualizujte komentář.
- Nakonec dokument uložte pomocí metody Document->Save(System::String fileName).
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.
- Načtěte dokument aplikace Word pomocí třídy Document.
- Načtěte komentáře pomocí metody Document->GetChildNodes(Aspose::Words::NodeType nodeType, bool isDeep).
- Získejte komentář, který chcete smazat, pomocí metody NodeCollection->idxget(int32t index) a přetypováním výsledku do Comment.
- Smažte komentář pomocí metody Comment->Remove().
- Uložte dokument pomocí metody Document->Save(System::String fileName).
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.
- Nejprve načtěte dokument aplikace Word pomocí třídy Document.
- Načtěte komentáře pomocí metody Document->GetChildNodes(Aspose::Words::NodeType nodeType, bool isDeep).
- Projděte komentáře.
- V rámci cyklu načtěte komentář a porovnejte jeho autora. Pokud se autor shoduje, komentář smažte.
- Nakonec dokument uložte pomocí metody Document->Save(System::String fileName).
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.
- Načtěte dokument aplikace Word pomocí třídy Document.
- Načtěte komentáře pomocí metody Document->GetChildNodes(Aspose::Words::NodeType nodeType, bool isDeep).
- Odstraňte všechny komentáře pomocí metody NodeCollection->Clear().
- Nakonec dokument uložte pomocí metody Document->Save(System::String fileName).
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.