Extract Text from MS Word Documents in C#

Microsoft Word 문서는 텍스트 콘텐츠를 생성하고 공유하는 데 필수적입니다. 이러한 문서와 상호작용하는 C# 애플리케이션을 개발하는 경우, 문서에서 텍스트를 추출해야 할 필요가 있을 수 있습니다. 이는 텍스트 분석 또는 문서의 특정 섹션을 추출하여 새로운 문서로 컴파일하는 등의 목적을 위해서입니다. 이 블로그 게시물에서는 C#에서 Word 문서에서 텍스트를 추출하는 방법에 대해 알아보겠습니다.

목차

텍스트 추출을 위한 C# 라이브러리

Aspose.Words for .NET는 Word 문서를 다루기 위해 설계된 강력하고 사용자 친화적인 라이브러리입니다. 이 라이브러리는 텍스트 추출, 문서 생성, 조작 및 변환을 포함한 포괄적인 기능 세트를 제공합니다. Aspose.Words for .NET를 사용하면 개발자는 Word 문서의 다양한 측면을 효율적으로 관리할 수 있어 개발 요구에 없어서는 안 될 도구입니다.

시작하려면 라이브러리를 다운로드하거나 패키지 관리자 콘솔에서 다음 명령을 사용하여 NuGet에서 직접 설치하십시오:

PM> Install-Package Aspose.Words

Word 문서에서 텍스트 추출 이해하기

MS Word 문서는 단락, 표 및 이미지와 같은 다양한 요소로 구성됩니다. 따라서 텍스트 추출 요구 사항은 특정 사용 사례에 따라 다를 수 있습니다. 단락, 책갈피, 주석 등 사이의 텍스트를 추출해야 할 수도 있습니다.

Word 문서의 각 요소는 노드로 표현됩니다. 따라서 문서를 효과적으로 처리하려면 이러한 노드와 작업해야 합니다. 다양한 시나리오에서 Word 문서에서 텍스트를 추출하는 방법을 살펴보겠습니다.

Word 문서에서 텍스트 추출을 위한 단계별 가이드

이 섹션에서는 Word 문서용 C# 텍스트 추출기를 구현합니다. 텍스트 추출의 작업 흐름은 다음 단계를 포함합니다:

  1. 추출 프로세스에 포함할 노드를 정의합니다.
  2. 지정된 노드 사이의 콘텐츠를 추출합니다(시작 및 종료 노드를 포함하거나 제외).
  3. 클론된 추출 노드를 사용하여 추출된 콘텐츠를 포함하는 새로운 Word 문서를 생성합니다.

ExtractContent라는 메서드를 생성하여 노드 및 기타 매개변수를 받아 텍스트 추출을 수행합니다. 이 메서드는 문서를 구문 분석하고 다음 매개변수에 따라 노드를 클론합니다:

  • StartNodeEndNode: 이들은 콘텐츠 추출의 시작 및 종료 지점을 정의합니다. 블록 수준(예: Paragraph, Table) 또는 인라인 수준 노드(예: Run, FieldStart, BookmarkStart)일 수 있습니다.
    • 필드의 경우, 해당 FieldStart 객체를 전달합니다.
    • 책갈피의 경우, BookmarkStartBookmarkEnd 노드를 사용합니다.
    • 주석의 경우, CommentRangeStartCommentRangeEnd 노드를 사용합니다.
  • IsInclusive: 이 매개변수는 마커가 추출에 포함되는지 여부를 결정합니다. false로 설정하고 동일하거나 연속 노드가 제공되면 빈 목록이 반환됩니다.

지정된 노드 사이의 콘텐츠를 추출하기 위한 ExtractContent 메서드의 전체 구현은 다음과 같습니다:

또한, 텍스트 추출 작업을 용이하게 하기 위해 ExtractContent 메서드에서 필요한 몇 가지 도우미 메서드가 있습니다:

이제 메서드가 준비되었으므로 Word 문서에서 텍스트를 추출할 수 있습니다.

Word 문서의 단락 간 텍스트 추출

Word DOCX 문서에서 두 단락 사이의 콘텐츠를 추출하려면 다음 단계를 따르십시오:

  1. Document 클래스를 사용하여 Word 문서를 로드합니다.
  2. Document.FirstSection.Body.GetChild(NodeType.PARAGRAPH, int, boolean) 메서드를 사용하여 시작 및 종료 단락에 대한 참조를 가져옵니다.
  3. ExtractContent(startPara, endPara, True) 메서드를 호출하여 노드를 객체로 추출합니다.
  4. GenerateDocument(Document, extractedNodes) 도우미 메서드를 사용하여 추출된 콘텐츠로 문서를 생성합니다.
  5. Document.Save(string) 메서드를 사용하여 새 문서를 저장합니다.

다음은 Word 문서에서 7번째와 11번째 단락 사이의 텍스트를 추출하는 방법을 보여주는 코드 샘플입니다:

다양한 유형의 노드 간 텍스트 추출

다양한 유형의 노드 간 콘텐츠를 추출할 수도 있습니다. 예를 들어, 단락과 표 사이의 콘텐츠를 추출하여 새 Word 문서에 저장해 보겠습니다. 단계는 다음과 같습니다:

  1. Document 클래스를 사용하여 Word 문서를 로드합니다.
  2. Document.FirstSection.Body.GetChild(NodeType, int, boolean) 메서드를 사용하여 시작 및 종료 노드에 대한 참조를 가져옵니다.
  3. **ExtractContent(startPara, endPara, True)**를 호출하여 노드를 객체로 추출합니다.
  4. GenerateDocument(Document, extractedNodes) 도우미 메서드를 사용하여 추출된 콘텐츠로 문서를 생성합니다.
  5. **Document.Save(string)**를 사용하여 새 문서를 저장합니다.

C#에서 단락과 표 사이의 텍스트를 추출하는 코드 샘플은 다음과 같습니다:

스타일에 따른 텍스트 추출

스타일에 따라 단락 사이의 콘텐츠를 추출하려면 다음 단계를 따르십시오. 이 시연에서는 Word 문서에서 첫 번째 “Heading 1"과 첫 번째 “Heading 3” 사이의 콘텐츠를 추출합니다:

  1. Document 클래스를 사용하여 Word 문서를 로드합니다.
  2. ParagraphsByStyleName(Document, “Heading 1”) 도우미 메서드를 사용하여 단락을 객체로 추출합니다.
  3. **ParagraphsByStyleName(Document, “Heading 3”)**을 사용하여 다른 객체로 단락을 추출합니다.
  4. 두 단락 배열의 첫 번째 요소를 사용하여 **ExtractContent(startPara, endPara, True)**를 호출합니다.
  5. GenerateDocument(Document, extractedNodes) 도우미 메서드를 사용하여 추출된 콘텐츠로 문서를 생성합니다.
  6. **Document.Save(string)**를 사용하여 새 문서를 저장합니다.

스타일에 따라 단락 사이의 콘텐츠를 추출하는 코드 샘플은 다음과 같습니다:

텍스트 추출에 대한 추가 정보

Word 문서에서 텍스트를 추출하는 추가 시나리오를 탐색하려면 이 문서를 참조하십시오.

무료 Word 텍스트 추출기 라이브러리 받기

평가 제한 없이 텍스트를 추출할 수 있는 무료 임시 라이센스를 받을 수 있습니다.

결론

Aspose.Words for .NET은 C#에서 Word 문서에서 텍스트를 추출하는 프로세스를 간소화하는 다목적 라이브러리입니다. 광범위한 기능과 사용자 친화적인 API를 통해 Word 문서와 효율적으로 작업하고 다양한 텍스트 추출 시나리오를 자동화할 수 있습니다. Word 문서 처리가 필요한 애플리케이션을 개발하거나 단순히 텍스트를 추출하는 경우, Aspose.Words for .NET은 개발자에게 필수적인 도구입니다.

Aspose.Words for .NET의 더 많은 기능을 탐색하려면 문서를 확인하십시오. 질문이 있는 경우 포럼을 통해 문의해 주십시오.

참조

팁: Aspose PowerPoint to Word 변환기를 확인해 보세요. 이는 프레젠테이션을 Word 문서로 변환하는 인기 있는 프로세스를 보여줍니다.