Microsoft Word ger dig möjligheten att lägga till kommentarer till Word-dokument. Kommentarer kan vara till hjälp i fall som att föreslå förbättringar i dokument eller dela tankar om texten. Det kan finnas situationer där du behöver hantera kommentarer programmatiskt. För detta ändamål kommer den här artikeln att lära dig hur du arbetar med kommentarer i Word-dokument med C++.
- C++ API för att arbeta med kommentarer i Word-dokument
- Lägg till kommentarer till Word-dokument med C++
- Läs kommentarer från ett Word-dokument
- Ändra kommentarer i ett Word-dokument med C++
- Ta bort kommentarer från ett Word-dokument med C++
C++ API för att arbeta med kommentarer i Word-dokument
Aspose.Words for C++ är ett inbyggt C++-bibliotek som låter dig skapa, läsa, ändra och konvertera Microsoft Word-dokument. Dessutom stöder den också arbete med kommentarer i DOCX- och DOC-filer. Du kan antingen installera API:t genom NuGet eller ladda ner det direkt från avsnittet Nedladdningar.
PM> Install-Package Aspose.Words.Cpp
Lägg till kommentarer till Word-dokument med C++
Aspose.Words for C++ API ger möjlighet att lägga till kommentarer med författarens namn, initialer och datum/tid. Följande är stegen för att lägga till kommentarer till Word-dokument.
- Ladda först Word-dokumentet med klassen Dokument.
- Skapa en instans av klassen DocumentBuilder genom att skicka objektet Document som skapades i föregående steg.
- Skapa kommentaren med klassen Comment.
- Lägg till kommentaren till dokumentet med hjälp av DocumentBuilder->getCurrentParagraph()->AppendChild(System::SharedPtrAspose::Words::Node newChild) metod.
- Slutligen sparar du dokumentet med metoden Dokument->Spara(System::String filnamn).
Följande exempelkod visar hur du lägger till kommentarer till Word-dokument med C++.
// Katalogsökvägar.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";
// Ladda Word-filen
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"Sample 1.docx");
// Skapa en instans av klassen DocumentBuilder
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Lägg till kommentar
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."));
// Spara dokumentet.
doc->Save(outputDataDir + u"AddCommentsToExistingDoc.docx");
Följande är bilden av utdata som genereras av exempelkoden.
Läs kommentarer från ett Word-dokument
Följande är stegen för att läsa kommentarer från Word-dokument.
- Ladda Word-dokumentet med klassen Document.
- Hämta kommentarerna med metoden Document->GetChildNodes(Aspose::Words::NodeType nodeType, bool isDeep).
- Iterera igenom kommentarerna och hämta informationen från enskilda kommentarer.
Följande är exempelkoden för att läsa kommentarer från ett Word-dokument med C++.
// Katalogsökvägar.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";
// Ladda Word-filen
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");
// Hämta kommentarer
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);
// Gå igenom alla kommentarer
for (System::SharedPtr<Comment> comment : System::IterateOver<System::SharedPtr<Comment>>(comments))
{
// Skriv ut kommentarsinformation
std::cout << comment->get_Author() + u" " + comment->get_DateTime() + u" " + System::StaticCast<Node>(comment)->ToString(SaveFormat::Text);
}
Ändra kommentarer i ett Word-dokument med C++
För att ändra en kommentar, hämta den med metoden NodeCollection->idxget(int32t index) och ändra den enligt dina behov. Följande är stegen för att ändra kommentarer i ett Word-dokument.
- Först laddar du Word-dokumentet med klassen Document.
- Hämta kommentarerna med metoden Document->GetChildNodes(Aspose::Words::NodeType nodeType, bool isDeep).
- Få önskad kommentar med metoden NodeCollection->idxget(int32t index) och casta resultatet till Comment.
- Uppdatera kommentaren.
- Slutligen sparar du dokumentet med metoden Dokument->Spara(System::String filnamn).
Följande exempelkod visar hur du ändrar kommentarer i ett Word-dokument med C++.
// Katalogsökvägar.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";
// Ladda Word-filen
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");
// Hämta kommentarer
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);
// Få kommentar
System::SharedPtr<Comment> comment = System::DynamicCast<Comment>(comments->idx_get(0));
// Uppdatera kommentarstext
comment->SetText(u"Updated Text");
// Spara dokumentet.
doc->Save(outputDataDir + u"UpdatedComment.docx");
Ta bort kommentarer från ett Word-dokument med C++
Aspose.Words for C++ API erbjuder flera sätt att ta bort kommentarer från Word-dokument. I det här avsnittet kommer du att lära dig hur du tar bort en specifik kommentar, kommentarer från författaren och alla kommentarer med C++.
Ta bort en specifik kommentar
Följande är stegen för att ta bort en specifik kommentar.
- Ladda Word-dokumentet med klassen Document.
- Hämta kommentarerna med metoden Document->GetChildNodes(Aspose::Words::NodeType nodeType, bool isDeep).
- Hämta kommentaren du vill ta bort med metoden NodeCollection->idxget(int32t index) och casta resultatet till Comment.
- Ta bort kommentaren med metoden Comment->Remove().
- Spara dokumentet med metoden Dokument->Spara(System::String filnamn).
Följande exempelkod visar hur man tar bort en specifik kommentar från ett Word-dokument med C++.
// Katalogsökvägar.
System::String sourceDataDir = u"D:\\Work\\Aspose\\01_SourceDirectory\\";
System::String outputDataDir = u"D:\\Work\\Aspose\\02_OutputDirectory\\";
// Ladda Word-filen
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");
// Hämta kommentarer
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);
// Få kommentar
System::SharedPtr<Comment> comment = System::DynamicCast<Comment>(comments->idx_get(2));
// Ta bort kommentar
comment->Remove();
// Spara dokumentet.
doc->Save(outputDataDir + u"DeleteSpecificComments.docx");
Ta bort kommentarer av författare
Följande är stegen för att ta bort kommentarer av författaren.
- Först laddar du Word-dokumentet med klassen Dokument.
- Hämta kommentarerna med metoden Document->GetChildNodes(Aspose::Words::NodeType nodeType, bool isDeep).
- Gå igenom kommentarerna.
- Hämta kommentaren inom loopen och jämför författaren. Om författaren matchar, ta bort kommentaren.
- Slutligen sparar du dokumentet med metoden Dokument->Spara(System::String filnamn).
Följande är exempelkoden för att radera kommentarer av författare med C++.
// Katalogsökvägar.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";
// Ladda Word-filen
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");
// Hämta kommentarer
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);
// Gå igenom alla kommentarer och ta bort de som skrivits av "Aspose"-författaren.
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();
}
}
// Spara dokumentet.
doc->Save(outputDataDir + u"DeleteCommentsByAuthor.docx");
Ta bort alla kommentarer
Istället för att ta bort enskilda kommentarer kan du ta bort alla kommentarer på en gång med metoden NodeCollection->Clear(). Följande är stegen för att ta bort alla kommentarer från ett Word-dokument.
- Ladda Word-dokumentet med klassen Document.
- Hämta kommentarerna med metoden Document->GetChildNodes(Aspose::Words::NodeType nodeType, bool isDeep).
- Ta bort alla kommentarer med metoden NodeCollection->Clear().
- Slutligen sparar du dokumentet med metoden Dokument->Spara(System::String filnamn).
Följande exempelkod visar hur du tar bort alla kommentarer från ett Word-dokument med C++.
// Katalogsökvägar.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";
// Ladda Word-filen
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");
// Hämta kommentarer
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);
// Ta bort alla kommentarer.
comments->Clear();
// Spara dokumentet.
doc->Save(outputDataDir + u"DeleteAllComments.docx");
Skaffa en gratis licens
Du kan prova API utan utvärderingsbegränsningar genom att begära en gratis tillfällig licens.
Slutsats
I den här artikeln har du lärt dig hur du arbetar med kommentarer i Word-dokument med C++. Specifikt har du lärt dig hur du lägger till, läser, redigerar och tar bort kommentarer. Dessutom har du sett hur man tar bort en specifik kommentar, kommentarer av författare och alla kommentarer med Aspose.Words för C++ API. API:et tillhandahåller ett stort antal ytterligare funktioner för att automatisera dina Word-relaterade uppgifter. Du kan utforska API:et i detalj genom att besöka den officiella dokumentationen. Om du har några frågor är du välkommen att kontakta oss på vårt gratis supportforum.