IronWord 사용하여 DOCX 파일에서 텍스트를 추출하세요

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronWord의 ExtractText() 메서드는 전체 문서, 특정 단락 또는 표의 셀에 접근하여 DOCX 파일에서 텍스트를 추출할 수 있게 하며, C#에서 문서 처리 및 데이터 분석 작업을 위한 간단한 API를 제공합니다.

빠른 시작: DOCX에서 텍스트 추출

  1. NuGet 패키지 관리자를 사용하여 https://www.nuget.org/packages/IronWord 설치하기

    PM > Install-Package IronWord
  2. 다음 코드 조각을 복사하여 실행하세요.

    using IronWord;
    
    // Quick example: Extract all text from DOCX
    WordDocument doc = new WordDocument("sample.docx");
    string allText = doc.ExtractText();
    Console.WriteLine(allText);
  3. 실제 운영 환경에서 테스트할 수 있도록 배포하세요.

    무료 체험판으로 오늘 프로젝트에서 IronWord 사용 시작하기

    arrow pointer

DOCX 문서에서 모든 텍스트를 추출하는 방법은 무엇인가요?

ExtractText() 메서드는 전체 워드 문서에서 텍스트 내용을 검색합니다. 이 예제에서는 새 문서를 만들고, 텍스트를 추가하고, ExtractText()을 사용하여 텍스트를 추출한 후 콘솔에 표시합니다. 이는 기본적인 텍스트 추출 워크플로를 보여줍니다.

추출된 텍스트는 문서의 논리적인 읽기 순서를 유지합니다. 이 방법은 제목, 단락, 목록 및 기타 텍스트 요소를 순차적으로 처리하므로 콘텐츠 분석 및 검색 색인 생성 애플리케이션에 이상적입니다.

:path=/static-assets/word/content-code-examples/how-to/extract-text-simple.cs
using System;
using IronWord;

// Instantiate a new DOCX file
WordDocument doc = new WordDocument();

// Add text
doc.AddText("Hello, World!");

// Print extracted text from the document to the console
Console.WriteLine(doc.ExtractText());
$vbLabelText   $csharpLabel

추출된 텍스트는 어떤 모습인가요?

서식 리본이 표시된 'Hello, World!' 텍스트가 있는 Microsoft Word 문서

콘솔에 어떤 출력이 표시될 것으로 예상해야 할까요?

Console.WriteLine을 사용하여 추출된 텍스트를 출력하는 코드 예제입니다. 디버그 콘솔에는 'Hello, World!'가 표시됩니다.

특정 단락에서 텍스트를 추출하려면 어떻게 해야 하나요?

보다 세밀한 제어를 위해 전체 문서 대신 특정 단락에서 텍스트를 추출할 수 있습니다. Paragraphs 컬렉션에 접근함으로써 필요한 어느 단락이든 타겟하고 처리할 수 있습니다. 이러한 세부적인 접근 방식은 구조화된 콘텐츠를 가진 문서를 다루거나 특정 섹션을 독립적으로 처리해야 할 때 유용합니다.

이 예제에서는 첫 번째 및 마지막 단락에서 텍스트를 추출하고 이를 결합하여 .txt 파일로 결과를 저장합니다. 이 기술은 문서 요약 도구에서 문서의 소개와 결론을 추출하고자 할 때 주로 사용됩니다. 기능을 잠금 해제하기 위해 라이선스 키를 사용하는 것과 유사하게, Paragraphs 컬렉션은 특정 문서 요소에 대한 접근을 제공합니다.

:path=/static-assets/word/content-code-examples/how-to/extract-text-paragraphs.cs
using System.IO;
using System.Linq;
using IronWord;

// Load an existing DOCX file
WordDocument doc = new WordDocument("document.docx");

// Extract text and assign variables
string firstParagraph = doc.Paragraphs[0].ExtractText();
string lastParagraph = doc.Paragraphs.Last().ExtractText();

// Combine the texts
string newText = firstParagraph + " " + lastParagraph;

// Export the combined text as a new .txt file
File.WriteAllText("output.txt", newText);
$vbLabelText   $csharpLabel

특정 단락을 추출하는 기능은 문서 분석 요구 사항과 결합될 때 강력한 도구가 됩니다. 예를 들어, 형식, 위치 또는 내용 패턴을 기준으로 핵심 단락을 추출할 수 있습니다. 이러한 선택적 추출 방식은 처리 시간을 줄이고 가장 관련성이 높은 콘텐츠에 집중하는 데 도움이 됩니다.

첫 번째 단락에서 어떤 내용이 추출되었습니까?

추출 과정을 보여주기 위해 빨간색 서식이 적용된 단락이 검은색 텍스트 단락 위에 있는 워드 문서입니다.

마지막 단락에서 어떤 내용이 추출되었습니까?

Microsoft Word 문서에 보라색과 파란색으로 Lorem ipsum 텍스트가 포함된 서식이 지정된 단락이 표시됩니다.

결합된 텍스트는 출력 파일에서 어떻게 나타나나요?

텍스트 편집기에서 단락 추출 지점이 빨간색과 파란색 화살표로 표시되어 단락 경계를 나타냅니다.

위 스크린샷은 첫 번째 단락 추출, 마지막 단락 추출, 그리고 추출된 내용을 텍스트 파일로 저장한 결과를 보여줍니다. 추출 과정에서 서식 정보는 제거되면서 텍스트 내용은 그대로 유지되므로 일반 텍스트 처리에 적합하다는 것을 알 수 있습니다.

DOCX 파일의 표에서 데이터를 추출하는 방법은 무엇인가요?

테이블에는 처리 또는 분석을 위해 추출해야 하는 구조화된 데이터가 포함되는 경우가 많습니다. IronWord 사용하면 행과 셀을 탐색하여 테이블 데이터에 접근할 수 있습니다. 이 예제에서는 API 통계 테이블이 포함된 문서를 불러와서 두 번째 행의 네 번째 열에서 특정 셀 값을 추출합니다.

테이블 추출은 데이터 마이그레이션 프로젝트, 보고서 생성 및 자동화된 데이터 수집 워크플로에 필수적입니다. 표 형식의 데이터를 처리할 때, 0부터 시작하는 인덱싱 시스템을 이해하는 것이 중요합니다 - 첫 번째 표는 Tables[0]이고, 첫 번째 행은 Rows[0]이며, 계속해서 이와 같습니다. 라이선스 체계와 유사한 이러한 체계적인 접근 방식은 예측 가능한 접근 패턴을 제공합니다.

:path=/static-assets/word/content-code-examples/how-to/extract-text-table.cs
using System;
using IronWord;
using IronWord.Models;

// Load the API statistics document
WordDocument apiStatsDoc = new WordDocument("api-statistics.docx");

// Extract text from the 1st table, 4th column and 2nd row
string extractedValue = ((TableCell)apiStatsDoc.Tables[0].Rows[2].Cells[3]).ExtractText();

// Print extracted value
Console.WriteLine($"Target success rate: {extractedValue}");
$vbLabelText   $csharpLabel

코드는 컬렉션 속성 Tables, Rows, Cells을 사용하여 표의 셀에 접근하는 방법을 보여줍니다. Cells 컬렉션은 ITableCell 인터페이스 객체를 반환하며, ExtractText 메서드에 접근하기 위해 TableCell로 형변환해야 합니다: ((TableCell)cell).ExtractText(). 이를 위해 using IronWord.Models;을 네임스페이스 선언에 추가해야 합니다.

원본 테이블은 어떤 모습인가요?

API 사용 통계표를 Word 파일로 제공하며, 6개의 엔드포인트에 대한 요청 수, 지연 시간, 성공률 및 대역폭 관련 지표를 보여줍니다.

테이블 셀에서 어떤 값이 검색됩니까?

Visual Studio 디버그 콘솔에 추출된 테이블 값 '대상 성공률: 99.8%'를 보여주는 콘솔 출력

고급 텍스트 추출 시나리오

복잡한 문서를 다룰 때는 여러 추출 기법을 결합해야 할 수도 있습니다. 다음은 여러 요소에서 텍스트를 추출하고 각각 다르게 처리하는 방법을 보여주는 예시입니다.

using IronWord;
using System.Text;
using System.Linq;

// Load a complex document
WordDocument complexDoc = new WordDocument("report.docx");

// Create a StringBuilder for efficient string concatenation
StringBuilder extractedContent = new StringBuilder();

// Extract and process headers (assuming they're in the first few paragraphs)
var headers = complexDoc.Paragraphs
    .Take(3)
    .Select(p => p.ExtractText())
    .Where(text => !string.IsNullOrWhiteSpace(text));

foreach (var header in headers)
{
    extractedContent.AppendLine($"HEADER: {header}");
}

// Extract table summaries
foreach (var table in complexDoc.Tables)
{
    // Get first cell as table header/identifier
    string tableIdentifier = table.Rows[0].Cells[0].ExtractText();
    extractedContent.AppendLine($"\nTABLE: {tableIdentifier}");

    // Extract key metrics (last row often contains totals)
    if (table.Rows.Count > 1)
    {
        var lastRow = table.Rows.Last();
        var totals = lastRow.Cells.Select(cell => cell.ExtractText());
        extractedContent.AppendLine($"Totals: {string.Join(", ", totals)}");
    }
}

// Save the structured extraction
System.IO.File.WriteAllText("structured-extract.txt", extractedContent.ToString());
using IronWord;
using System.Text;
using System.Linq;

// Load a complex document
WordDocument complexDoc = new WordDocument("report.docx");

// Create a StringBuilder for efficient string concatenation
StringBuilder extractedContent = new StringBuilder();

// Extract and process headers (assuming they're in the first few paragraphs)
var headers = complexDoc.Paragraphs
    .Take(3)
    .Select(p => p.ExtractText())
    .Where(text => !string.IsNullOrWhiteSpace(text));

foreach (var header in headers)
{
    extractedContent.AppendLine($"HEADER: {header}");
}

// Extract table summaries
foreach (var table in complexDoc.Tables)
{
    // Get first cell as table header/identifier
    string tableIdentifier = table.Rows[0].Cells[0].ExtractText();
    extractedContent.AppendLine($"\nTABLE: {tableIdentifier}");

    // Extract key metrics (last row often contains totals)
    if (table.Rows.Count > 1)
    {
        var lastRow = table.Rows.Last();
        var totals = lastRow.Cells.Select(cell => cell.ExtractText());
        extractedContent.AppendLine($"Totals: {string.Join(", ", totals)}");
    }
}

// Save the structured extraction
System.IO.File.WriteAllText("structured-extract.txt", extractedContent.ToString());
$vbLabelText   $csharpLabel

이 고급 예제는 다양한 문서 요소를 결합하여 구조화된 추출을 생성하는 방법을 보여줍니다. 이 접근 방식은 문서 요약을 생성하거나, 색인을 만들거나, 추가 처리를 위해 데이터를 준비하는 데 유용합니다. 소프트웨어 업그레이드가 소프트웨어 기능을 향상시키는 것처럼, 추출 방법을 결합하면 문서 처리 기능이 향상됩니다.

텍스트 추출을 위한 모범 사례

실제 운영 환경에서 텍스트 추출 기능을 구현할 때는 다음과 같은 모범 사례를 고려하십시오.

  1. 오류 처리 : 문서가 손상되었거나 예상치 못한 구조를 가진 경우를 대비하여 추출 코드는 항상 try-catch 블록으로 감싸야 합니다.

  2. 성능 최적화 : 대용량 문서 또는 일괄 처리의 경우, 문서 전체 내용을 추출하는 대신 필요한 부분만 추출하는 것을 고려하십시오.

  3. 문자 인코딩 : 추출한 텍스트를 저장할 때, 특히 특수 문자나 여러 언어가 포함된 문서의 경우 문자 인코딩에 유의해야 합니다.

  4. 메모리 관리: 여러 문서를 처리할 때, 메모리 누수를 방지하기 위해 WordDocument 객체를 적절하게 폐기하십시오.

텍스트 추출은 논리적인 읽기 순서는 유지하지만 서식은 제거한다는 점을 기억하세요. 서식 정보를 유지해야 하는 경우 추가적인 IronWord 기능을 사용하거나 메타데이터를 별도로 저장하는 것을 고려하십시오. 실제 운영 환경에 배포할 경우, 최신 기능 및 개선 사항을 확인하려면 변경 로그를 검토하십시오.

요약

IronWord의 ExtractText() 메서드는 DOCX 파일에서 텍스트를 추출하는 강력하고 유연한 방법을 제공합니다. 문서 전체를 추출하든, 특정 단락을 추출하든, 표 데이터를 추출하든, API는 목표를 달성하기 위한 간편한 방법을 제공합니다. 이러한 기술들을 적절한 오류 처리 및 최적화 전략과 결합하면 다양한 텍스트 추출 시나리오를 효율적으로 처리하는 강력한 문서 처리 애플리케이션을 구축할 수 있습니다.

더욱 고급 시나리오를 사용하거나 추가 기능을 살펴보려면 확장 프로그램 및 기타 문서 자료를 참조하여 문서 처리 기능을 향상시키세요.

자주 묻는 질문

C#에서 Word 문서의 모든 텍스트를 추출하려면 어떻게 하나요?

WordDocument 객체에서 IronWord의 ExtractText() 메소드를 사용하세요. WordDocument doc = new WordDocument("document.docx");로 DOCX 파일을 로드한 후, string text = doc.ExtractText();를 호출하여 문서의 모든 텍스트 콘텐츠를 검색하세요.

전체 문서가 아닌 특정 단락에서 텍스트를 추출할 수 있나요?

네, IronWord는 Paragraphs 컬렉션을 접근하여 특정 단락에서 텍스트를 추출할 수 있도록 합니다. doc.Paragraphs[index].ExtractText()를 사용하여 개별 단락을 대상으로 더 세분화된 텍스트 추출을 할 수 있습니다.

DOCX 파일에서 표의 텍스트를 추출하려면 어떻게 해야 하나요?

IronWord는 Tables 컬렉션을 통해 표 텍스트 추출을 가능하게 합니다. doc.Tables[0].Rows[0].Cells[0].ExtractText()를 사용하여 문서 내의 모든 표 셀에서 텍스트 콘텐츠를 검색할 수 있습니다.

ExtractText()를 사용하여 추출된 텍스트는 어떤 순서를 따르나요?

IronWord의 ExtractText() 메소드는 문서의 논리적 읽기 순서를 유지하여 헤더, 단락, 목록 및 기타 텍스트 요소를 순서대로 처리하여 콘텐츠 분석 및 검색 인덱싱에 이상적입니다.

DOCX 파일에서 텍스트 추출을 시작하기 위한 기본 단계는 무엇인가요?

먼저 NuGet을 통해 IronWord를 설치하고 (Install-Package IronWord) WordDocument를 생성하거나 로드한 후, ExtractText() 메소드를 사용하여 문서 전체, 특정 단락 또는 표 셀로부터 텍스트를 필요한 대로 검색하세요.

텍스트 추출이 문서 인덱싱 시스템 구축에 적합한가요?

예, IronWord의 텍스트 추출 기능은 문서 색인 시스템 구축, 콘텐츠 관리 솔루션 및 데이터 추출 파이프라인을 위한 프로그램 접근을 효율적으로 제공하여 Word 문서 콘텐츠에 프로그램적으로 접근하기에 완벽합니다.

아흐마드 소하일
풀스택 개발자

아흐마드는 C#, Python 및 웹 기술에 탄탄한 기반을 갖춘 풀스택 개발자입니다. 그는 확장 가능한 소프트웨어 솔루션 구축에 깊은 관심을 가지고 있으며, 실제 응용 프로그램에서 디자인과 기능이 어떻게 조화를 이루는지 탐구하는 것을 즐깁니다.

Iron Software 팀에 합류하기 전, 아흐마드는 자동화 프로젝트와 API 통합 업무를 담당하며 성능 향상과 개발자 경험 개선에 주력했습니다.

그는 여가 시간에 UI/UX 아이디어를 실험하고, 오픈 소스 도구에 기여하며, 복잡한 주제를 더 쉽게 이해할 수 있도록 기술 문서를 작성하는 데 몰두하기도 합니다.

시작할 준비 되셨나요?
Nuget 다운로드 35,581 | 버전: 2026.3 방금 출시되었습니다
Still Scrolling Icon

아직도 스크롤하고 계신가요?

빠른 증거를 원하시나요? PM > Install-Package IronWord
샘플 실행 데이터를 워드 문서로 변환 확인.