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

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.

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.

Bild 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.

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ö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.

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ö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.

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.

Se även