Java를 사용하여 Word 문서에서 텍스트 추출

경우에 따라 다양한 목적으로 Word 문서에서 텍스트를 추출해야 할 수 있습니다. Java 개발자는 프로그래밍 방식으로 DOC 또는 DOCX 파일에서 텍스트를 쉽게 추출할 수 있습니다. 이 기사에서는 Java를 사용하여 Word 문서에서 텍스트를 추출하는 방법을 배웁니다.

이 문서에서는 다음 주제를 논의/다룹니다.

Word 문서에서 텍스트를 추출하는 Java API

DOC 또는 DOCX 파일에서 텍스트를 추출하기 위해 GroupDocs.Parser for Java API를 사용합니다. Word, PDF, ExcelPowerPoint의 인기 있는 파일 형식에서 텍스트, 메타데이터 및 이미지를 추출할 수 있습니다. 또한 지원되는 형식의 파일에서 원시, 형식 및 구조화된 텍스트 추출을 지원합니다.

API의 JAR을 다운로드하거나 Maven 기반 Java 애플리케이션에 다음 pom.xml 구성을 추가하여 아래에 언급된 코드 예제를 시도할 수 있습니다.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>https://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
	<groupId>com.groupdocs</groupId>
	<artifactId>groupdocs-parser</artifactId>
	<version>21.2</version> 
</dependency>

Java를 사용하여 Word 문서에서 텍스트 추출

아래에 언급된 간단한 단계에 따라 Word 문서를 구문 분석하고 텍스트를 추출할 수 있습니다.

  • 먼저 Parser 클래스를 사용하여 DOCX 파일을 로드합니다.
  • 그런 다음 Parser.getText() 메서드를 호출하여 로드된 문서에서 텍스트를 추출합니다.
  • TextReader 클래스 개체에서 Parser.getText() 메서드의 결과를 가져옵니다.
  • 마지막으로 TextReader.readToEnd() 메서드를 호출하여 현재 위치에서 텍스트 판독기 끝까지의 모든 문자를 읽고 하나의 문자열로 반환합니다.

다음 코드 샘플은 Java를 사용하여 DOCX 파일에서 텍스트를 추출하는 방법을 보여줍니다.

// Parser 클래스의 인스턴스 생성
Parser parser = new Parser("C:\\Files\\sample.docx");

// 판독기에 원시 텍스트 추출
try (TextReader reader = parser.getText()) {
    // 문서에서 텍스트 인쇄
    // 텍스트 추출이 지원되지 않는 경우 판독기는 null입니다.
    System.out.println(reader == null ? "Text extraction isn't supported" : reader.readToEnd());
}
Java를 사용하여 Word 문서에서 텍스트 추출

Java를 사용하여 Word 문서에서 텍스트 추출

Java를 사용하여 Word 문서의 특정 페이지에서 텍스트 추출

아래에 언급된 간단한 단계에 따라 Word 문서를 구문 분석하고 특정 페이지에서 텍스트를 추출할 수 있습니다.

  • 먼저 Parser 클래스를 사용하여 DOCX 파일을 로드합니다.
  • 그런 다음 Parser.getFeatures().isText()를 사용하여 문서가 텍스트 추출 기능을 지원하는지 확인합니다. 지원되는 기능에 대해 자세히 알아보세요.
  • 이제 Parser.getDocumentInfo() 메서드를 호출하여 문서에 대한 일반 정보를 가져옵니다. 파일 형식, 페이지 수, 크기 등
  • IDocumentInfo 인터페이스 개체에서 Parser.getDocumentInfo() 메서드의 결과를 가져옵니다.
  • 그런 다음 IDocumentInfo.getPageCount()가 0이 아닌지 확인합니다. 이 메서드는 문서 페이지의 총 수를 반환합니다.
  • 모든 페이지를 반복하고 각 페이지 인덱스에 대해 Parser.getText() 메서드를 호출하여 텍스트를 추출하고 TextReader 클래스 개체에서 결과를 가져옵니다.
  • 마지막으로 TextReader.readToEnd() 메서드를 호출하여 추출된 텍스트를 읽어 결과를 표시합니다.

다음 코드 샘플은 Java를 사용하여 페이지에서 텍스트를 하나씩 추출하는 방법을 보여줍니다.

// Parser 클래스의 인스턴스 만들기
Parser parser = new Parser("C:\\Files\\sample.docx");

// 문서가 텍스트 추출을 지원하는지 확인
if (!parser.getFeatures().isText()) {
    System.out.println("The document doesn't support text extraction.");
    return;
}

// 문서 정보 얻기
IDocumentInfo documentInfo = parser.getDocumentInfo();

// 문서에 페이지가 있는지 확인
if (documentInfo.getPageCount() == 0) {
    System.out.println("The document has zero pages.");
    return;
}

// 페이지 반복
for (int p = 0; p < documentInfo.getPageCount(); p++) {
    // 페이지 번호 인쇄
    System.out.println(String.format("Page number: %d/%d", p + 1, documentInfo.getPageCount()));
    // 판독기로 텍스트 추출
    try (TextReader reader = parser.getText(p)) {
        // 문서에서 텍스트 인쇄
        // 이전에 텍스트 추출 기능 지원을 확인했기 때문에 null 확인을 무시합니다.
        System.out.println(reader.readToEnd());
    }
}
Java를 사용하여 문서의 특정 페이지에서 텍스트 추출

Java를 사용하여 문서의 특정 페이지에서 텍스트 추출

Java를 사용하여 Word 문서에서 강조 표시 가져오기

하이라이트는 일반적으로 검색 기능에서 찾은 텍스트의 컨텍스트를 설명하는 데 사용되는 텍스트의 일부입니다. 아래에 언급된 간단한 단계에 따라 문서에서 하이라이트를 추출할 수 있습니다.

  • 먼저 Parser 클래스를 사용하여 DOCX 파일을 로드합니다.
  • HighlightOptions 클래스 객체의 인스턴스를 만들고 고정 길이 하이라이트를 추출하기 위해 생성자에 입력 매개변수로 최대 길이를 전달합니다.
  • 그런 다음 Parser.getHighlight() 메서드를 시작 위치와 HighlightOptions 클래스 객체로 호출하여 문서에서 HighlightItem 클래스의 객체로 하이라이트를 추출합니다.
  • 마지막으로 Highlight.getPosition()HighlightItem.getText() 메서드를 호출하여 강조 표시의 위치와 텍스트를 가져옵니다.

다음 코드 샘플은 Java를 사용하여 문서에서 하이라이트를 추출하는 방법을 보여줍니다.

// Parser 클래스의 인스턴스 만들기
try (Parser parser = new Parser("C:\\Files\\sample.docx")) {
    // 하이라이트 추출:
    HighlightItem hl = parser.getHighlight(0, true, new HighlightOptions(8));
    // 하이라이트 추출이 지원되는지 확인
    if (hl == null) {
        System.out.println("Highlight extraction isn't supported");
        return;
    }
    // 추출된 하이라이트 인쇄
    System.out.println(String.format("At %d: %s", hl.getPosition(), hl.getText()));
}
At 0: Overview

Java를 사용하여 DOCX에서 형식화된 텍스트 추출

아래에 언급된 간단한 단계에 따라 스타일 서식을 잃지 않고 Word 문서를 구문 분석하고 텍스트를 추출할 수 있습니다.

다음 코드 샘플은 Java를 사용하여 DOCX 파일에서 형식이 지정된 텍스트를 추출하는 방법을 보여줍니다.

// Parser 클래스의 인스턴스 생성
try (Parser parser = new Parser("C:\\Files\\sample.docx")) {
    // 형식이 지정된 텍스트를 판독기로 추출
    try (TextReader reader = parser.getFormattedText(new FormattedTextOptions(FormattedTextMode.Html))) {
        // 문서에서 서식 있는 텍스트 인쇄
        // 형식화된 텍스트 추출이 지원되지 않는 경우 판독기는 null입니다.
        System.out.println(reader == null ? "Formatted text extraction isn't suppported" : reader.readToEnd());
    }
}
Java를 사용하여 DOCX에서 형식화된 텍스트 추출

Java를 사용하여 DOCX에서 형식화된 텍스트 추출

Java를 사용하여 목차로 텍스트 추출

아래에 언급된 간단한 단계에 따라 목차별로 문서에서 텍스트를 추출할 수 있습니다.

  • 먼저 Parser 클래스를 사용하여 DOCX 파일을 로드합니다.
  • 그런 다음 Parser.getToc() 메서드를 호출하여 TocItem 클래스 개체의 컬렉션으로 목차를 추출합니다. TocItem은 목차 추출 기능에서 사용되는 항목을 나타냅니다.
  • 이제 컬렉션이 null이 아닌지 확인하십시오.
  • 그런 다음 TocItem의 컬렉션을 반복하고 TocItem.extractText() 메서드를 호출하여 TocItem 객체가 참조하는 문서에서 텍스트를 추출합니다.
  • TextReader 클래스 개체에서 결과를 가져옵니다.
  • 마지막으로 TextReader.readToEnd() 메서드를 호출하여 모든 텍스트를 읽습니다.

다음 코드 샘플은 Java를 사용하여 Word 문서에서 목차별로 텍스트를 추출하는 방법을 보여줍니다.

// Parser 클래스의 인스턴스 만들기
try (Parser parser = new Parser("C:\\Files\\sampleTOC.docx")) {
    // 목차 가져오기
    Iterable<TocItem> tocItems = parser.getToc();
    // toc 추출이 지원되는지 확인
    if (tocItems == null) {
        System.out.println("Table of contents extraction isn't supported");
    }
    else
    {
        // 항목 반복
        for (TocItem tocItem : tocItems) {
            // 챕터의 텍스트 인쇄
            try (TextReader reader = tocItem.extractText()) {
                System.out.println("----");
                System.out.println(reader.readToEnd());
            }
        }
    }
}
Java를 사용하여 목차로 텍스트 추출

Java를 사용하여 목차로 텍스트 추출

무료 라이선스 받기

임시 무료 라이선스를 요청하면 평가 제한 없이 API를 사용해 볼 수 있습니다.

결론

이 기사에서는 Java를 사용하여 Word 문서에서 텍스트를 추출하는 방법을 배웠습니다. 또한 프로그래밍 방식으로 DOCX 파일에서 형식이 지정된 텍스트를 추출하는 방법을 살펴보았습니다. 이 기사에서는 목차로 텍스트를 추출하고 문서에서 하이라이트를 추출하는 방법도 설명했습니다. 또한 문서를 사용하여 Java API용 GroupDocs.Parser에 대해 자세히 알아볼 수 있습니다. 모호한 부분이 있는 경우 포럼을 통해 언제든지 문의해 주십시오.

또한보십시오