Java에서 GroupDocs.Parser를 사용하여 테이블 파싱하기

이 튜토리얼에서는 PDF, Word 파일 및 스프레드시트에서 구조화된 데이터를 추출하기 위한 강력한 라이브러리인 GroupDocs.Parser를 사용하여 Java에서 테이블을 파싱하는 방법을 배웁니다. 효율적인 테이블 추출은 청구서 처리, 데이터 마이그레이션 및 보고 작업을 크게 가속화할 수 있습니다. 라이브러리 설정부터 테이블 템플릿 정의, 그리고 필요한 데이터를 추출하는 전체 워크플로우를 단계별로 살펴보겠습니다.

소개

다양한 형식(PDF, Word 문서, 스프레드시트 등)에서 구조화된 데이터 추출이 필요한 기업에게 문서를 효율적으로 파싱하는 것은 필수적입니다. 이 프로세스를 자동화하면 시간 절약과 오류 감소 효과를 얻을 수 있습니다. 이 포괄적인 가이드를 통해 Java용 GroupDocs.Parser를 사용하여 문서에서 테이블을 정의하고 파싱하는 방법을 배웁니다—문서 처리 워크플로우를 간소화하는 데 중요한 기술입니다.

Quick Answers

  • What is the primary purpose? Java를 사용하여 문서에서 구조화된 테이블 데이터를 추출합니다.
  • Which library is required? GroupDocs.Parser for Java (v25.5+).
  • Do I need a license? 무료 체험을 사용할 수 있으며, 프로덕션에서는 상용 라이선스가 필요합니다.
  • Can I process PDFs and Word files? 예, 라이브러리는 PDF, DOCX, XLSX 및 기타 많은 형식을 지원합니다.
  • Is batch processing supported? 물론입니다—루프나 병렬 스트림을 사용하여 여러 파일을 처리할 수 있습니다.

What You’ll Learn

  • GroupDocs.Parser for Java 설정하기
  • 특정 레이아웃을 가진 테이블 템플릿 만들기
  • 미리 정의된 템플릿을 사용하여 문서 파싱하기
  • 이 기능들의 실제 적용 사례

이 가이드를 마치면 자체 문서 파싱 솔루션을 구현하고 최적화할 수 있는 역량을 갖추게 됩니다. 시작해 볼까요!

GroupDocs.Parser 컨텍스트에서 “테이블 파싱 방법”이란?

테이블 파싱은 문서 내부의 표 영역을 찾아 행과 열을 매핑하고 각 셀의 텍스트 내용을 추출하는 작업을 의미합니다. GroupDocs.Parser는 템플릿 기반 접근 방식을 제공하여 테이블의 정확한 레이아웃(열 너비, 행 높이)을 기술하면, 원본 파일의 크기나 스타일이 달라도 엔진이 필요한 데이터를 안정적으로 추출할 수 있습니다.

테이블 추출에 GroupDocs.Parser를 사용하는 이유

  • Accuracy: 레이아웃 기반 템플릿은 오탐지를 줄여줍니다.
  • Speed: 템플릿 기반 파싱은 일반 텍스트 추출보다 빠릅니다.
  • Flexibility: 추가 변환기 없이 PDF, DOCX, XLSX 및 기타 많은 형식에서 작동합니다.
  • Scalability: 청구서, 보고서 및 데이터 마이그레이션 파이프라인의 배치 처리에 이상적입니다.

Prerequisites

코드 작성을 시작하기 전에 다음 항목을 준비하세요:

Required Libraries and Dependencies

  • GroupDocs.Parser for Java (version 25.5 or later)
  • Maven이 설치되어 있어야 합니다.
  • Java 프로그래밍에 대한 기본 이해

Environment Setup Requirements

  • Java Development Kit (JDK) 버전 8 이상
  • IntelliJ IDEA, Eclipse, NetBeans와 같은 IDE

Setting Up GroupDocs.Parser for Java

프로젝트에서 GroupDocs.Parser를 사용하려면 의존성으로 추가해야 합니다. 방법은 다음과 같습니다:

Maven Configuration

pom.xml 파일에 다음 저장소와 의존성을 추가하세요:

<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/parser/java/</url>
   </repository>
</repositories>

<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-parser</artifactId>
      <version>25.5</version>
   </dependency>
</dependencies>

Direct Download

또는 GroupDocs.Parser for Java releases에서 최신 버전을 다운로드하십시오.

License Acquisition

GroupDocs는 기능을 체험할 수 있는 무료 평가판을 제공합니다. 장기 사용이 필요하면 라이선스를 구매하거나 임시 라이선스를 발급받는 것을 고려하세요.

Implementation Guide

이제 모든 준비가 끝났으니 GroupDocs.Parser를 사용해 테이블을 정의하고 파싱하는 방법을 살펴보겠습니다.

Define Template Table with Layout

이 기능을 사용하면 특정 열 너비와 행 높이를 가진 테이블 템플릿을 만들 수 있습니다. 방법은 다음과 같습니다:

Step 1: Create a Template Table Layout

열 너비와 행 높이를 지정하여 레이아웃을 정의합니다.

TemplateTableLayout layout = new TemplateTableLayout(
        Arrays.asList(new Double[]{30.0, 100.0, 320.0, 400.0, 480.0, 550.0}),
        Arrays.asList(new Double[]{320.0, 345.0, 375.0}));

Step 2: Create a Table Template

레이아웃을 사용해 테이블 템플릿을 인스턴스화합니다.

TemplateTable table = new TemplateTable(layout, "Details", null);

Step 3: Create a Template Containing the Table Item

템플릿들을 하나의 Template 객체로 컴파일합니다.

Template template = new Template(Arrays.asList(new TemplateItem[]{table}));

Parse Document by Template

템플릿이 정의되었으니 이를 사용해 문서를 파싱해 보겠습니다.

Step 1: Create an Instance of the Parser Class

대상 문서를 지정해 파서 인스턴스를 초기화합니다.

try (Parser parser = new Parser("YOUR_DOCUMENT_DIRECTORY/SampleInvoicePdf.pdf")) {
    // Assume 'template' is already defined as in the DefineTemplateTable feature
    Template template;
    
    // Step 2: Parse the Document by Predefined Template
    DocumentData data = parser.parseByTemplate(template);

Step 2: Iterate Through Extracted Data Items

추출된 데이터를 순회하면서 각 셀의 값을 출력합니다.

for (int i = 0; i < data.getCount(); i++) {
    PageTableArea area = data.get(i).getPageArea() instanceof PageTableArea 
            ? (PageTableArea) data.get(i).getPageArea()
            : null;

    if (area != null) {
        for (int row = 0; row < area.getRowCount(); row++) {
            for (int column = 0; column < area.getColumnCount(); column++) {
                PageTextArea cellValue = area.getCell(row, column).getPageArea() instanceof PageTextArea
                        ? (PageTextArea) area.getCell(row, column).getPageArea()
                        : null;

                System.out.print(cellValue == null ? "" : cellValue.getText());
            }
            System.out.println();
        }
    }
}

Troubleshooting Tips

  • Common Issues: 문서 경로가 올바르고 접근 가능한지 확인하세요.
  • Performance Considerations: 가능한 경우 더 작은 템플릿을 사용하여 처리 속도를 높이세요.

Practical Applications

테이블 정의 및 파싱이 유용하게 활용될 수 있는 실제 사례를 소개합니다:

  1. Invoice Processing: 청구서에서 데이터 추출을 자동화하여 회계 프로세스를 효율화합니다.
  2. Data Migration: 다양한 시스템이나 형식 간에 구조화된 데이터를 효율적으로 전송합니다.
  3. Reporting Tools: 문서에서 핵심 지표를 직접 추출하여 보고서를 생성합니다.

Performance Considerations

최적의 성능을 위해 다음 팁을 고려하세요:

  • Optimize Table Layouts: 파싱 시간을 줄이기 위해 테이블 레이아웃을 가능한 한 구체적으로 설정하세요.
  • Memory Management: 대용량 문서를 처리할 때 메모리 사용량을 모니터링하여 누수를 방지하세요.
  • Batch Processing: 여러 파일을 다룰 경우 배치 처리하여 자원을 효율적으로 관리하세요.

Conclusion

이 튜토리얼을 통해 Java용 GroupDocs.Parser를 사용하여 테이블을 파싱하는 방법을 배웠습니다. 이 강력한 라이브러리는 문서 처리 능력을 크게 향상시켜 데이터 추출을 빠르고 효율적으로 만들어 줍니다. GroupDocs.Parser의 잠재력을 더 탐색하려면 documentation을 살펴보거나 다양한 템플릿과 파일 형식을 실험해 보세요.

FAQ Section

  1. What is GroupDocs.Parser?
    다양한 문서 형식에서 텍스트, 메타데이터, 이미지 및 구조화된 데이터를 추출하기 위한 Java용 라이브러리입니다.

  2. Can I use GroupDocs.Parser with other programming languages?
    예, C#, .NET, Python, PHP 등 여러 언어를 지원합니다.

  3. How do I handle large documents efficiently?
    테이블 레이아웃을 최적화하고 배치 처리를 고려하여 성능을 개선하세요.

  4. Is there support for non‑table data extraction?
    물론입니다—GroupDocs.Parser는 텍스트, 이미지 및 메타데이터도 추출할 수 있습니다.

  5. Where can I find more examples of using GroupDocs.Parser?
    GitHub repository 또는 documentation을 확인하세요.

Resources

이 리소스들을 자유롭게 탐색하여 보다 깊이 있는 정보와 커뮤니티 지원을 받아 보세요. 즐거운 코딩 되시길 바랍니다!


마지막 업데이트: 2026-02-09
테스트 대상: GroupDocs.Parser 25.5 for Java
작성자: GroupDocs