C#에서 PDF에서 테이블 추출

PDF 파일에서 표를 추출하는 것은 데이터 추출이나 분석을 할 때 일반적인 작업일 수 있습니다. 처리하기 위해 표를 검색하거나 추가 사용을 위해 내보내려는 경우 이 프로세스를 자동화하면 시간과 노력을 절약할 수 있습니다. 이 블로그 게시물에서는 C#에서 PDF에서 표를 추출하거나 추출된 데이터를 CSV 파일로 내보내는 방법을 보여드리겠습니다.

이 기사에서는 다음 섹션에 대해 다루겠습니다.

PDF에서 표를 추출하는 이유는 무엇입니까?

PDF 파일은 휴대용 형식으로 정보를 공유하는 데 널리 사용됩니다. 그러나 표와 같은 구조화된 데이터를 추출하는 것은 PDF 파일이 쉽게 편집하거나 조작하도록 설계되지 않았기 때문에 어려울 수 있습니다. C#에서 테이블 데이터를 프로그래밍 방식으로 추출하면 데이터에 더 쉽게 접근할 수 있어 CSV와 같이 다양한 형식으로 데이터를 분석, 수정 또는 저장할 수 있습니다. CSV는 다양한 애플리케이션 간의 데이터 교환에 널리 사용됩니다.

PDF 테이블 추출 - C# API 구성

아래 NuGet 설치 명령으로 Conholdate.Total for .NET을 구성하여 PDF 테이블에서 데이터를 추출할 수 있습니다.

PM> NuGet\Install-Package Conholdate.Total

C#에서 PDF에서 테이블 추출

이 섹션에서는 C#을 사용하여 PDF 문서에서 표를 추출하는 방법을 살펴보겠습니다.

  • PDF 문서 로딩: 코드는 PDF 파일을 Document 클래스 객체로 로딩하는 것으로 시작합니다.
  • Table Absorber: TableAbsorber 클래스는 PDF의 각 페이지에 있는 표를 감지하고 흡수하는 데 사용됩니다.
  • 테이블 데이터 추출: 코드는 발견된 각 테이블을 반복하며, 테이블의 각 셀의 내용을 추출하고, 이를 구조화된 형식으로 출력합니다.

이 방법은 PDF 문서에서 표 형식 데이터에 액세스하는 효과적인 방법을 제공하여 정보를 프로그래밍 방식으로 작업할 수 있습니다. 아래 코드 조각은 C#에서 표 추출을 보여줍니다.

// 소스 PDF 문서 로드
var filePath = "input.pdf";
Aspose.Pdf.Document pdfDocument = new Aspose.Pdf.Document(filePath);
foreach (var page in pdfDocument.Pages)
{
    Aspose.Pdf.Text.TableAbsorber absorber = new Aspose.Pdf.Text.TableAbsorber();
    absorber.Visit(page);
    foreach (AbsorbedTable table in absorber.TableList)
    {
        Console.WriteLine("Table");
        foreach (AbsorbedRow row in table.RowList)
        {
            foreach (AbsorbedCell cell in row.CellList)
            {
                foreach (TextFragment fragment in cell.TextFragments)
                {
                    var sb = new StringBuilder();
                    foreach (TextSegment seg in fragment.Segments)
                        sb.Append(seg.Text);
                    Console.Write("{sb.ToString()}|");
                }
            }
            Console.WriteLine();
        }
    }
}

C#에서 PDF 테이블 데이터를 CSV로 변환

PDF에서 테이블 데이터를 추출한 후에는 CSV와 같이 더 접근하기 쉬운 형식으로 저장하고 싶을 수 있습니다. CSV(쉼표로 구분된 값)는 Microsoft Excel, Google Sheets 및 많은 데이터 처리 시스템과 같은 애플리케이션에서 널리 지원됩니다. 이 섹션에서는 PDF 테이블 데이터를 C#에서 CSV로 변환합니다.

다음 단계에서는 C#에서 PDF 테이블의 데이터를 CSV 형식으로 내보내는 방법을 보여줍니다.

  • PDF 문서 로딩: PDF 문서는 이전과 마찬가지로 Document 객체에 로딩됩니다.
  • ExcelSaveOptions: ExcelSaveOptions의 인스턴스가 CSV로 설정된 형식으로 생성됩니다. 이렇게 하면 PDF의 테이블 데이터가 CSV 파일로 직접 내보내집니다.
  • CSV 파일 저장: Save 메서드는 PDF 테이블 데이터를 .csv 파일로 내보내기 위해 호출됩니다.

아래 코드 샘플은 C#에서 PDF 테이블을 CSV 형식으로 변환하는 방법을 보여줍니다.

// PDF 문서 로드
Document pdfDocument = new Document("input.pdf");

// ExcelSave 옵션 개체 인스턴스화
ExcelSaveOptions excelSave = new ExcelSaveOptions { Format = ExcelSaveOptions.ExcelFormat.CSV };

// XLS 형식으로 출력을 저장합니다.
pdfDocument.Save("PDFToXLS_out.xlsx", excelSave);

무료 라이센스 받기

평가 제한 없이 API의 다양한 기능을 테스트하기 위해 무료 임시 라이선스를 받을 수 있습니다.

요약해서

PDF에서 표를 추출하고 C#에서 CSV 형식으로 데이터를 내보내는 작업은 C#에서 간단하고 효율적으로 수행할 수 있습니다. 표 추출을 자동화하는 기능은 CSV와 같은 보다 유연한 형식으로 PDF에서 표 데이터를 분석하거나 공유해야 하는 시나리오에 도움이 됩니다. 이 블로그 게시물의 단계를 따르면 PDF 파일에서 표 데이터를 쉽게 검색하고 저장할 수 있습니다. 이 프로세스는 특히 데이터 분석, 보고 또는 그렇지 않으면 딱딱한 PDF 문서에서 구조화된 데이터가 필요한 모든 작업에 유용합니다. 질문이 있는 경우 forum에서 문의해 주세요.

또한 참조