O Microsoft Word oferece a capacidade de adicionar comentários a documentos do Word. Os comentários podem ser úteis em casos como sugerir melhorias em documentos ou compartilhar ideias sobre o texto. Pode haver situações em que você precise gerenciar comentários programaticamente. Para isso, este artigo ensinará como trabalhar com comentários em documentos do Word usando C++.
- API C++ para trabalhar com comentários em documentos do Word
- Adicionar comentários a documentos do Word usando C++
- Ler comentários de um documento do Word
- Modificar comentários em um documento do Word usando C++
- Excluir comentários de um documento do Word usando C++
API C++ para trabalhar com comentários em documentos do Word
Aspose.Words for C++ é uma biblioteca nativa de C++ que permite criar, ler, modificar e converter documentos do Microsoft Word. Além disso, também suporta trabalhar com comentários em arquivos DOCX e DOC. Você pode instalar a API por meio do NuGet ou baixá-la diretamente da seção Downloads.
PM> Install-Package Aspose.Words.Cpp
Adicionar comentários a documentos do Word usando C++
Aspose.Words for C++ API fornece a capacidade de adicionar comentários com o nome do autor, iniciais e data/hora. A seguir estão as etapas para adicionar comentários a documentos do Word.
- Primeiramente, carregue o documento do Word usando a classe Document.
- Crie uma instância da classe DocumentBuilder passando o objeto Document criado na etapa anterior.
- Crie o comentário usando a classe Comment.
- Adicione o comentário ao documento usando o DocumentBuilder->getCurrentParagraph()->AppendChild(System::SharedPtrAspose::Words::Node newChild) método.
- Finalmente, salve o documento usando o método Document->Save(System::String fileName).
O código de exemplo a seguir demonstra como adicionar comentários a documentos do Word usando C++.
// Caminhos de diretório.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";
// Carregar o arquivo do Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"Sample 1.docx");
// Crie uma instância da classe DocumentBuilder
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Adicionar comentário
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."));
// Salve o documento.
doc->Save(outputDataDir + u"AddCommentsToExistingDoc.docx");
Veja a seguir a imagem da saída gerada pelo código de exemplo.
Ler comentários de um documento do Word
A seguir estão as etapas para ler comentários de documentos do Word.
- Carregue o documento do Word usando a classe Document.
- Recupere os comentários usando o método Document->GetChildNodes(Aspose::Words::NodeType nodeType, bool isDeep).
- Itere pelos comentários e recupere as informações de comentários individuais.
Veja a seguir o código de exemplo para ler comentários de um documento do Word usando C++.
// Caminhos de diretório.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";
// Carregar o arquivo do Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");
// Recuperar comentários
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);
// Percorrer todos os comentários
for (System::SharedPtr<Comment> comment : System::IterateOver<System::SharedPtr<Comment>>(comments))
{
// Imprimir informações do comentário
std::cout << comment->get_Author() + u" " + comment->get_DateTime() + u" " + System::StaticCast<Node>(comment)->ToString(SaveFormat::Text);
}
Modificar comentários em um documento do Word usando C++
Para modificar um comentário, recupere-o usando o método NodeCollection->idxget(int32t index) e altere-o de acordo com suas necessidades. A seguir estão as etapas para modificar comentários em um documento do Word.
- Primeiramente, carregue o documento do Word usando a classe Document.
- Recupere os comentários usando o método Document->GetChildNodes(Aspose::Words::NodeType nodeType, bool isDeep).
- Obtenha o comentário desejado usando o método NodeCollection->idxget(int32t index) e convertendo o resultado em Comment.
- Atualize o comentário.
- Finalmente, salve o documento usando o método Document->Save(System::String fileName).
O código de exemplo a seguir mostra como modificar comentários em um documento do Word usando C++.
// Caminhos de diretório.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";
// Carregar o arquivo do Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");
// Recuperar comentários
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);
// Obter comentário
System::SharedPtr<Comment> comment = System::DynamicCast<Comment>(comments->idx_get(0));
// Atualizar texto do comentário
comment->SetText(u"Updated Text");
// Salve o documento.
doc->Save(outputDataDir + u"UpdatedComment.docx");
Excluir comentários de um documento do Word usando C++
A API Aspose.Words para C++ fornece várias maneiras de excluir comentários de documentos do Word. Nesta seção, você aprenderá como excluir um comentário específico, comentários por autor e todos os comentários usando C++.
Excluir um comentário específico
A seguir estão as etapas para excluir um comentário específico.
- Carregue o documento do Word usando a classe Document.
- Recupere os comentários usando o método Document->GetChildNodes(Aspose::Words::NodeType nodeType, bool isDeep).
- Obtenha o comentário que deseja excluir usando o método NodeCollection->idxget(int32t index) e converta o resultado em Comment.
- Exclua o comentário usando o método Comment->Remove().
- Salve o documento usando o método Document->Save(System::String fileName).
O código de exemplo a seguir mostra como excluir um comentário específico de um documento do Word usando C++.
// Caminhos de diretório.
System::String sourceDataDir = u"D:\\Work\\Aspose\\01_SourceDirectory\\";
System::String outputDataDir = u"D:\\Work\\Aspose\\02_OutputDirectory\\";
// Carregar o arquivo do Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");
// Recuperar comentários
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);
// Obter comentário
System::SharedPtr<Comment> comment = System::DynamicCast<Comment>(comments->idx_get(2));
// Remover comentário
comment->Remove();
// Salve o documento.
doc->Save(outputDataDir + u"DeleteSpecificComments.docx");
Excluindo comentários do autor
A seguir estão as etapas para excluir comentários por autor.
- Primeiramente, carregue o documento do Word usando a classe Document.
- Recupere os comentários usando o método Document->GetChildNodes(Aspose::Words::NodeType nodeType, bool isDeep).
- Percorra os comentários.
- Dentro do loop, recupere o comentário e compare seu autor. Se o autor corresponder, exclua o comentário.
- Finalmente, salve o documento usando o método Document->Save(System::String fileName).
Veja a seguir o código de exemplo para excluir comentários por autor usando C++.
// Caminhos de diretório.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";
// Carregar o arquivo do Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");
// Recuperar comentários
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);
// Percorra todos os comentários e remova aqueles escritos pelo autor de "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();
}
}
// Salve o documento.
doc->Save(outputDataDir + u"DeleteCommentsByAuthor.docx");
Excluir todos os comentários
Em vez de deletar comentários individuais, você pode deletar todos os comentários de uma vez usando o método NodeCollection->Clear(). A seguir estão as etapas para excluir todos os comentários de um documento do Word.
- Carregue o documento do Word usando a classe Document.
- Recupere os comentários usando o método Document->GetChildNodes(Aspose::Words::NodeType nodeType, bool isDeep).
- Remova todos os comentários usando o método NodeCollection->Clear().
- Finalmente, salve o documento usando o método Document->Save(System::String fileName).
O código de exemplo a seguir demonstra como excluir todos os comentários de um documento do Word usando C++.
// Caminhos de diretório.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";
// Carregar o arquivo do Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");
// Recuperar comentários
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);
// Remova todos os comentários.
comments->Clear();
// Salve o documento.
doc->Save(outputDataDir + u"DeleteAllComments.docx");
Obtenha uma licença gratuita
Você pode experimentar a API sem limitações de avaliação solicitando uma licença temporária gratuita.
Conclusão
Neste artigo, você aprendeu como trabalhar com comentários em documentos do Word usando C++. Especificamente, você aprendeu como adicionar, ler, editar e excluir comentários. Além disso, você viu como excluir um comentário específico, comentários por autor e todos os comentários usando Aspose.Words for C++ API. A API fornece um grande número de recursos adicionais para automatizar suas tarefas relacionadas ao Word. Você pode explorar a API em detalhes visitando a documentação oficial. Em caso de dúvidas, sinta-se à vontade para entrar em contato conosco em nosso fórum de suporte gratuito.