Microsoft Word надає можливість додавати коментарі до документів Word. Коментарі можуть бути корисними в таких випадках, як пропозиції покращення документів або обмін думками щодо тексту. Можуть виникнути ситуації, коли вам потрібно програмно керувати коментарями. З цією метою ця стаття навчить вас, як працювати з коментарями в документах Word за допомогою C++.
- C++ API для роботи з коментарями в документах Word
- Додайте коментарі до документів Word за допомогою C++
- Читайте коментарі з документа Word
- Змінюйте коментарі в документі Word за допомогою C++
- Видалення коментарів із документа Word за допомогою C++
C++ API для роботи з коментарями в документах Word
Aspose.Words for C++ — це рідна бібліотека C++, яка дозволяє створювати, читати, змінювати та конвертувати документи Microsoft Word. Крім того, він також підтримує роботу з коментарями у файлах DOCX і DOC. Ви можете встановити API через NuGet або завантажити його безпосередньо з розділу Завантаження.
PM> Install-Package Aspose.Words.Cpp
Додайте коментарі до документів Word за допомогою C++
API Aspose.Words for C++ надає можливість додавати коментарі з іменем автора, ініціалами та датою/часом. Нижче наведено кроки, щоб додати коментарі до документів Word.
- По-перше, завантажте документ Word за допомогою класу Document.
- Створіть екземпляр класу DocumentBuilder, передавши об’єкт Document, створений на попередньому кроці.
- Створіть коментар за допомогою класу Comment.
- Додайте коментар до документа за допомогою DocumentBuilder->getCurrentParagraph()->AppendChild(System::SharedPtrAspose::Words::Node newChild) метод.
- Нарешті збережіть документ за допомогою методу Document->Save(System::String fileName).
Наведений нижче приклад коду демонструє, як додавати коментарі до документів Word за допомогою C++.
// Шляхи до каталогу.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";
// Завантажте файл Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"Sample 1.docx");
// Створіть екземпляр класу DocumentBuilder
System::SharedPtr<DocumentBuilder> builder = System::MakeObject<DocumentBuilder>(doc);
// Додайте коментар
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."));
// Збережіть документ.
doc->Save(outputDataDir + u"AddCommentsToExistingDoc.docx");
Нижче наведено зображення результату, створеного зразком коду.
Читайте коментарі з документа Word
Нижче наведено кроки для читання коментарів із документів Word.
- Завантажте документ Word за допомогою класу Document.
- Отримайте коментарі за допомогою методу Document->GetChildNodes(Aspose::Words::NodeType nodeType, bool isDeep).
- Переглядайте коментарі та отримайте інформацію про окремі коментарі.
Нижче наведено зразок коду для читання коментарів із документа Word за допомогою C++.
// Шляхи до каталогу.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";
// Завантажте файл Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");
// Отримати коментарі
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);
// Перегляньте всі коментарі
for (System::SharedPtr<Comment> comment : System::IterateOver<System::SharedPtr<Comment>>(comments))
{
// Роздрукувати інформацію про коментарі
std::cout << comment->get_Author() + u" " + comment->get_DateTime() + u" " + System::StaticCast<Node>(comment)->ToString(SaveFormat::Text);
}
Змінюйте коментарі в документі Word за допомогою C++
Щоб змінити коментар, отримайте його за допомогою методу NodeCollection->idxget(int32t index) і змініть його відповідно до ваших потреб. Нижче наведено кроки, щоб змінити коментарі в документі Word.
- По-перше, завантажте документ Word за допомогою класу Document.
- Отримайте коментарі за допомогою методу Document->GetChildNodes(Aspose::Words::NodeType nodeType, bool isDeep).
- Отримайте потрібний коментар за допомогою методу NodeCollection->idxget(int32t index) і передайте результат до Comment.
- Оновіть коментар.
- Нарешті збережіть документ за допомогою методу Document->Save(System::String fileName).
Наведений нижче приклад коду показує, як змінити коментарі в документі Word за допомогою C++.
// Шляхи до каталогу.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";
// Завантажте файл Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");
// Отримати коментарі
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);
// Отримати коментар
System::SharedPtr<Comment> comment = System::DynamicCast<Comment>(comments->idx_get(0));
// Оновити текст коментаря
comment->SetText(u"Updated Text");
// Збережіть документ.
doc->Save(outputDataDir + u"UpdatedComment.docx");
Видалення коментарів із документа Word за допомогою C++
API Aspose.Words for C++ надає кілька способів видалення коментарів із документів Word. У цьому розділі ви дізнаєтесь, як видалити певний коментар, коментарі автора та всі коментарі за допомогою C++.
Видалити конкретний коментар
Нижче наведено кроки, щоб видалити певний коментар.
- Завантажте документ Word за допомогою класу Document.
- Отримайте коментарі за допомогою методу Document->GetChildNodes(Aspose::Words::NodeType nodeType, bool isDeep).
- Отримайте коментар, який потрібно видалити, за допомогою методу NodeCollection->idxget(int32t index) і передайте результат до Comment.
- Видаліть коментар за допомогою методу Comment->Remove().
- Збережіть документ за допомогою методу Document->Save(System::String fileName).
У наведеному нижче прикладі коду показано, як видалити певний коментар із документа Word за допомогою C++.
// Шляхи до каталогу.
System::String sourceDataDir = u"D:\\Work\\Aspose\\01_SourceDirectory\\";
System::String outputDataDir = u"D:\\Work\\Aspose\\02_OutputDirectory\\";
// Завантажте файл Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");
// Отримати коментарі
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);
// Отримати коментар
System::SharedPtr<Comment> comment = System::DynamicCast<Comment>(comments->idx_get(2));
// Видалити коментар
comment->Remove();
// Збережіть документ.
doc->Save(outputDataDir + u"DeleteSpecificComments.docx");
Видалення коментарів автора
Нижче наведено кроки для видалення коментарів автора.
- По-перше, завантажте документ Word за допомогою класу Document.
- Отримайте коментарі за допомогою методу Document->GetChildNodes(Aspose::Words::NodeType nodeType, bool isDeep).
- Переглядайте коментарі.
- У циклі знайдіть коментар і порівняйте його автора. Якщо автор збігається, видаліть коментар.
- Нарешті збережіть документ за допомогою методу Document->Save(System::String fileName).
Нижче наведено зразок коду для видалення коментарів автора за допомогою C++.
// Шляхи до каталогу.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";
// Завантажте файл Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");
// Отримати коментарі
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);
// Перегляньте всі коментарі та видаліть коментарі автора "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();
}
}
// Збережіть документ.
doc->Save(outputDataDir + u"DeleteCommentsByAuthor.docx");
Видалити всі коментарі
Замість того, щоб видаляти окремі коментарі, ви можете видалити всі коментарі одночасно за допомогою методу NodeCollection->Clear(). Нижче наведено кроки, щоб видалити всі коментарі з документа Word.
- Завантажте документ Word за допомогою класу Document.
- Отримайте коментарі за допомогою методу Document->GetChildNodes(Aspose::Words::NodeType nodeType, bool isDeep).
- Видаліть усі коментарі за допомогою методу NodeCollection->Clear().
- Нарешті збережіть документ за допомогою методу Document->Save(System::String fileName).
Наведений нижче приклад коду демонструє, як видалити всі коментарі з документа Word за допомогою C++.
// Шляхи до каталогу.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";
// Завантажте файл Word
System::SharedPtr<Document> doc = System::MakeObject<Document>(sourceDataDir + u"SampleComments.docx");
// Отримати коментарі
System::SharedPtr<NodeCollection> comments = doc->GetChildNodes(NodeType::Comment, true);
// Видалити всі коментарі.
comments->Clear();
// Збережіть документ.
doc->Save(outputDataDir + u"DeleteAllComments.docx");
Отримайте безкоштовну ліцензію
Ви можете спробувати API без оціночних обмежень, надіславши запит на безкоштовну тимчасову ліцензію.
Висновок
У цій статті ви дізналися, як працювати з коментарями в документах Word за допомогою C++. Зокрема, ви навчилися додавати, читати, редагувати та видаляти коментарі. Крім того, ви бачили, як видалити певний коментар, коментарі автора та всі коментарі за допомогою API Aspose.Words for C++. API надає величезну кількість додаткових функцій для автоматизації завдань, пов’язаних із Word. Ви можете детально вивчити API, відвідавши офіційну документацію. У разі будь-яких запитань зв’яжіться з нами на нашому безкоштовному форумі підтримки.