Microsoft Word는 Word 문서에 주석을 추가할 수 있는 기능을 제공합니다. 댓글은 문서의 개선 사항을 제안하거나 텍스트에 대한 생각을 공유하는 등의 경우에 도움이 될 수 있습니다. 프로그래밍 방식으로 주석을 관리해야 하는 상황이 있을 수 있습니다. 이를 위해 이 기사에서는 C++를 사용하여 Word 문서에서 주석으로 작업하는 방법을 설명합니다.

Word 문서에서 주석 작업을 위한 C++ API

Aspose.Words for C++은 Microsoft Word 문서를 생성, 읽기, 수정 및 변환할 수 있는 네이티브 C++ 라이브러리입니다. 또한 DOCXDOC 파일의 주석 작업도 지원합니다. NuGet을 통해 API를 설치하거나 다운로드 섹션에서 직접 다운로드할 수 있습니다.

PM> Install-Package Aspose.Words.Cpp

C++를 사용하여 Word 문서에 주석 추가

Aspose.Words for C++ API는 작성자 이름, 이니셜 및 날짜/시간과 함께 주석을 추가하는 기능을 제공합니다. 다음은 Word 문서에 주석을 추가하는 단계입니다.

다음 샘플 코드는 C++를 사용하여 Word 문서에 주석을 추가하는 방법을 보여줍니다.

// 디렉토리 경로.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";

// 워드 파일 불러오기
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 문서에서 주석을 읽는 단계입니다.

다음은 C++를 사용하여 Word 문서에서 주석을 읽는 샘플 코드입니다.

// 디렉토리 경로.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";

// 워드 파일 불러오기
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);
}

C++를 사용하여 Word 문서에서 주석 수정

주석을 수정하려면 NodeCollection->idxget(int32t index) 메서드를 사용하여 주석을 검색하고 필요에 따라 변경합니다. 다음은 Word 문서에서 주석을 수정하는 단계입니다.

다음 샘플 코드는 C++를 사용하여 Word 문서에서 주석을 수정하는 방법을 보여줍니다.

// 디렉토리 경로.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";

// 워드 파일 불러오기
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");

C++를 사용하여 Word 문서에서 주석 삭제

Aspose.Words for C++ API는 Word 문서에서 주석을 삭제하는 여러 방법을 제공합니다. 이 섹션에서는 C++를 사용하여 특정 주석, 작성자별 주석 및 모든 주석을 삭제하는 방법을 배웁니다.

특정 댓글 삭제

다음은 특정 댓글을 삭제하는 단계입니다.

다음 샘플 코드는 C++를 사용하여 Word 문서에서 특정 주석을 삭제하는 방법을 보여줍니다.

// 디렉토리 경로.
System::String sourceDataDir = u"D:\\Work\\Aspose\\01_SourceDirectory\\";
System::String outputDataDir = u"D:\\Work\\Aspose\\02_OutputDirectory\\";

// 워드 파일 불러오기
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");

작성자별 댓글 삭제

작성자별 댓글 삭제 방법은 다음과 같습니다.

다음은 C++를 사용하여 작성자별 주석을 삭제하는 샘플 코드입니다.

// 디렉토리 경로.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";

// 워드 파일 불러오기
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 문서에서 모든 주석을 삭제하는 단계입니다.

다음 샘플 코드는 C++를 사용하여 Word 문서에서 모든 주석을 삭제하는 방법을 보여줍니다.

// 디렉토리 경로.
System::String sourceDataDir = u"SourceDirectory\\";
System::String outputDataDir = u"OutputDirectory\\";

// 워드 파일 불러오기
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를 사용해 볼 수 있습니다.

결론

이 기사에서는 C++를 사용하여 Word 문서에서 주석으로 작업하는 방법을 배웠습니다. 특히 주석을 추가, 읽기, 편집 및 삭제하는 방법을 배웠습니다. 또한 Aspose.Words for C++ API를 사용하여 특정 주석, 작성자별 주석 및 모든 주석을 삭제하는 방법을 살펴보았습니다. API는 Word 관련 작업을 자동화하기 위한 방대한 추가 기능을 제공합니다. 공식문서에서 API를 자세히 살펴볼 수 있다. 질문이 있는 경우 무료 지원 포럼에서 언제든지 문의하십시오.

또한보십시오