Tips & Tricks

PDF 테이블을 별도의 CSV 파일로 변환하는 방법

각각 별도의 보고서 섹션으로 구성된 12개의 데이터 테이블이 포함된 PDF에는 변환 문제가 있습니다. 전체 PDF를 단일 CSV로 변환하면 섹션 3의 표 헤더가 섹션 2의 데이터 중간에 나타나는 뒤죽박죽된 스프레드시트가 생성됩니다. PDF에서 Excel로 전체 문서를 한 번에 변환하는 도구는 테이블을 구분하지 않습니다. 각 테이블을 자체 CSV 파일로 추출하려면 각 테이블을 더 큰 문서 내에서 독립적인 데이터 소스로 처리하는 보다 선택적인 접근 방식이 필요합니다.

목표는 테이블당 하나의 CSV 파일을 생성하는 것입니다. 각 CSV에는 PDF에 있는 소스 테이블의 올바른 열 헤더와 데이터 행이 포함되어 있습니다. 출력 파일 수는 문서의 개별 테이블 수와 일치합니다. 이 접근 방식은 혼합된 테이블 데이터를 분리하기 위한 수동 후처리 없이 각 데이터세트를 깔끔하게 유지하고 분석 도구, 데이터베이스 또는 별도의 스프레드시트 탭으로 가져올 수 있도록 준비합니다.

WukongPDF의 PDF 데이터 추출 도구는 PDF 내의 테이블 구조를 식별하고 구조화된 형식으로 내보냅니다. 여러 개의 독립 테이블이 있는 문서의 경우 아래에 설명된 추출 워크플로를 통해 깔끔한 테이블별 CSV 출력이 생성됩니다.

How to Convert PDF Tables to Separate CSV Files

PDF 테이블 추출 작동 방식

테이블 추출 엔진은 각 PDF 페이지에서 텍스트 문자의 공간 위치를 분석합니다. 가로로 가까이 붙어 있는 문자는 단어를 형성합니다. 일정한 수직 간격으로 수평 행에 배열된 단어는 표 행을 형성합니다. 열 사이의 수직 간격은 열 경계를 정의합니다. 엔진은 문자를 셀로, 셀을 행으로, 행을 테이블 구조로 그룹화한 다음 테이블을 구분된 텍스트로 내보냅니다. 추출 정확도는 원본 PDF 테이블의 형식이 얼마나 깨끗한지에 따라 달라집니다. 눈금선이 표시되고 열 너비가 일정하며 병합된 셀이 없는 테이블은 거의 완벽에 가까운 정확도로 추출됩니다.

하나의 셀이 여러 열이나 행에 걸쳐 있는 병합된 셀은 엔진에서 병합된 셀이 속한 열을 확인할 수 없기 때문에 공간 분석을 혼란스럽게 합니다. 행별로 번갈아 나타나는 배경 음영이 있는 테이블에서는 엔진이 음영 경계를 열 경계로 잘못 해석할 수 있습니다. 콘텐츠가 셀 내에서 여러 줄로 줄바꿈되는 테이블에서는 엔진이 줄바꿈된 각 줄을 별도의 행으로 처리할 수 있습니다. 추출 방법을 결정하기 전에 PDF 테이블에서 이러한 기능을 시각적으로 검사하고 이에 따라 기대치를 설정하십시오.

WukongPDF

PDF를 Excel로 사용해 보세요

설치가 필요하지 않습니다. 브라우저에서 직접 작동합니다.

시작하기 →

방법 1: Adobe Acrobat Pro를 사용하여 개별 테이블 내보내기

Acrobat Pro는 PDF를 Excel로 내보낼 수 있으며 여기에서 통합 문서를 별도의 CSV 파일로 분할할 수 있습니다. Acrobat Pro에서 PDF를 열고 도구, PDF 내보내기로 이동합니다. 출력 형식으로 스프레드시트를 선택하고 Microsoft Excel 통합 문서를 선택합니다. 내보내기를 클릭합니다. Acrobat은 전체 문서를 처리하고 XLSX 파일을 생성합니다. Excel에서 XLSX를 엽니다. 각 PDF 페이지의 내용은 문서 레이아웃에 따라 별도의 시트 또는 연속 데이터 범위에 나타납니다.

Excel 출력에서 각 테이블이 시작하고 끝나는 위치를 식별합니다. 머리글 행을 포함하여 첫 번째 테이블의 데이터 범위를 선택하고 새 Excel 통합 문서에 복사합니다. 해당 통합 문서를 Sales_Q1_2025.csv와 같이 설명이 포함된 이름을 가진 CSV 파일로 저장합니다. 각 후속 테이블에 대해 반복합니다. 이 수동 접근 방식은 최대 5개의 테이블이 포함된 문서에 안정적으로 작동합니다. 수십 개의 테이블이 있는 문서의 경우 수동 복사 및 저장 작업 흐름이 지루해지며 아래의 자동화된 방법 중 하나가 더 실용적입니다.

방법 2: 테이블 검색 기능이 있는 온라인 도구

여러 온라인 PDF-CSV 변환기에는 문서 내의 개별 테이블을 식별하는 테이블 감지 기능이 포함되어 있습니다. 이러한 도구는 PDF를 스캔하고, 감지된 테이블 영역을 강조 표시하고, 감지된 각 테이블을 별도의 CSV 또는 XLSX 통합 문서의 별도 시트로 내보내는 기능을 제공합니다. 웹 애플리케이션과 로컬 데스크톱 앱 모두에서 사용할 수 있는 오픈 소스 도구인 Tabula는 이 워크플로를 전문으로 합니다. PDF를 업로드하고 추출하려는 각 테이블 주위에 선택 상자를 그린 다음 내보내기를 클릭합니다. Tabula는 선택한 테이블 영역당 하나의 CSV를 생성합니다.

실제로 온라인 추출의 품질은 PDF의 내부 구조에 따라 크게 달라집니다. 표 내용이 실제 텍스트 문자로 저장되는 텍스트 기반 PDF는 안정적으로 추출됩니다. 테이블이 텍스트 자체가 아닌 텍스트 이미지인 스캔된 PDF는 추출하기 전에 OCR이 필요합니다. PDF가 스캐너에서 생성된 경우 먼저 OCR 엔진을 통해 PDF를 실행한 다음 검색 가능한 OCR 출력에서 테이블을 추출합니다. OCR 단계에서는 특히 유사한 문자로 잘못 인식될 수 있는 숫자의 경우 일부 추출 오류가 발생합니다.

방법 3: Python 및 Tabula를 사용하여 추출 자동화

반복되는 추출 작업이나 테이블이 많은 문서의 경우 tabula-py 라이브러리를 사용하는 Python 스크립트가 워크플로를 자동화합니다. 스크립트는 PDF를 열고, 각 페이지에서 테이블 영역을 감지하고, 각 테이블을 pandas DataFrame으로 추출하고, 각 DataFrame을 별도의 CSV 파일로 저장합니다. 기본 추출 스크립트에는 대략 25줄의 코드가 필요합니다.

tabula-py 라이브러리는 눈금선이 보이는 테이블의 격자 모드, 열이 공백으로 구분된 테이블의 스트림 모드 등 테이블 감지 전략을 위한 매개변수를 허용합니다. 격자 모드는 테두리가 있는 올바른 형식의 테이블에 더 정확합니다. 스트림 모드는 경계선 없는 테이블을 허용하지만 공백 간격이 일관되지 않으면 열을 잘못 정렬할 수 있습니다. 테이블 스타일이 혼합된 문서의 경우 각 모드에 대해 한 번씩 추출을 두 번 실행하고 출력을 비교하여 각 테이블에 대해 더 깔끔한 데이터를 생성하는 모드를 결정합니다.

방법에 가장 적합키 제한
Adobe Acrobat Pro 내보내기깨끗한 테이블, 하나 또는 두 개의 PDF병합된 셀로 인한 어려움
온라인 PDF-CSV 도구빠른 변환, 설치 없음다중 페이지 테이블을 잘못 처리할 수 있음
Python + 팬더 + 보드일괄 처리, 복잡한 테이블스크립팅 지식이 필요합니다

여러 페이지에 걸쳐 있는 테이블 처리

3페이지부터 4페이지까지 이어지는 표는 특별한 도전 과제를 제시합니다. 추출 엔진은 각 페이지에 하나씩 두 개의 개별 테이블을 확인합니다. 각 테이블에는 3페이지에 자체 헤더 행이 있고 4페이지에 반복 헤더가 있을 수 있습니다. 추출 후 두 번째 파일의 데이터 행을 첫 번째 파일의 데이터 행 아래에 추가하고 두 번째 파일에서 중복 헤더 행을 제거하여 두 개의 CSV 파일을 수동으로 병합하거나 스크립트를 사용하여 병합합니다.

일부 추출 도구에는 여러 페이지로 구성된 테이블을 자동으로 병합하려고 시도하는 페이지 확장 또는 테이블 연결 옵션이 포함되어 있습니다. 이 옵션은 테이블 구조가 페이지 전체에서 일관되고 각 페이지 나누기가 행 경계에서 발생할 때 작동합니다. 페이지 나누기가 행을 두 페이지로 분할하는 경우(예: 3페이지 하단에서 시작하여 4페이지 상단에서 끝나는 래핑된 텍스트가 있는 큰 행) 자동 병합은 첫 번째 CSV 끝에 부분 행을 생성하고 두 번째 CSV 시작 부분에 또 다른 부분 행을 생성합니다. 이러한 극단적인 경우에는 병합 지점을 수동으로 검사하고 수정해야 합니다.

각 PDF 테이블을 자체 CSV 파일로 추출하면 모든 스프레드시트 또는 데이터베이스 도구로 직접 가져올 수 있는 깨끗하고 분석 가능한 데이터가 생성됩니다. 선택하는 방법은 추출해야 하는 테이블 수와 이 작업을 수행하는 빈도에 따라 달라집니다. 소수의 테이블에서 가끔 사용하는 경우 Acrobat Pro의 Excel로 내보내기 워크플로우와 수동 CSV 분할이 작업을 처리합니다. 표준화된 문서에서 반복되는 일괄 추출을 위해 Python 및 Tabula 접근 방식은 일관된 결과로 수백 개의 PDF를 처리합니다.

추출된 CSV 데이터의 정확성 검증

각 테이블을 CSV로 추출한 후 데이터를 분석 파이프라인으로 가져오기 전에 빠른 검증 단계를 실행하세요. 스프레드시트 애플리케이션에서 각 CSV를 열고 행 수를 원본 PDF 테이블에 표시되는 행 수와 비교합니다. 개수는 페이지 나누기에 걸쳐 있는 가능한 헤더 행을 고려하여 하나 또는 두 개의 행 내에서 일치해야 합니다. PDF와 비교하여 CSV의 숫자 값을 즉시 확인합니다. 숫자가 포함된 5개의 셀을 무작위로 선택하고 값이 정확히 일치하는지 확인합니다.

원본 PDF에 병합된 셀이 포함된 열에 특히 주의하세요. 추출 엔진은 병합된 셀의 값을 범위에 있는 모든 열에 복제하거나 일부 열을 비워 두는 경우가 많습니다. 분석이 보존되는 병합된 셀 구조에 따라 달라지는 경우 추출 엔진이 이를 올바르게 처리할 것이라고 기대하기보다는 사후 처리 중에 병합 논리를 적용하십시오. CSV를 읽고 사전 정의된 매핑을 기반으로 열을 원래 구조로 다시 병합하는 짧은 Python 스크립트는 추출 엔진의 병합 감지에 의존하는 것보다 더 안정적인 결과를 생성합니다.

대신 API 추출 서비스를 사용해야 하는 경우

대규모 PDF 테이블 추출의 경우 API 기반 서비스는 복잡한 레이아웃을 위한 로컬 도구보다 더 높은 정확도를 제공합니다. Amazon Textract, Google Document AI 및 Microsoft Form Recognizer는 수백만 개의 테이블 형식에 대해 훈련된 기계 학습 모델을 사용하고 규칙 기반 엔진보다 병합된 셀, 여러 줄의 셀 콘텐츠 및 경계 없는 테이블을 더 안정적으로 처리합니다. 비용은 페이지당 비용이므로 가끔 고부가가치를 추출하는 경우 경제적이지만 수천 페이지를 매일 일괄 처리하는 경우 비용이 많이 들 수 있습니다.

API 추출은 기본 도구에서 놓친 테이블 컨텍스트를 캡처합니다. 헤더가 여러 열에 걸쳐 있는 경우에도 열 헤더는 데이터 셀과 연결됩니다. 계층적 상위-하위 헤더가 식별됩니다. 출력은 일반 CSV가 아닌 구조화된 JSON으로, 다운스트림 처리를 위해 테이블 의미 체계를 유지합니다. 정확성이 재정적 또는 법적 결과에 영향을 미치는 비즈니스에 중요한 데이터의 경우 페이지당 API 비용은 추출 오류를 수동으로 수정하는 비용의 일부입니다.

WukongPDF

PDF를 Excel로 사용해 보세요

설치가 필요하지 않습니다. 브라우저에서 직접 작동합니다.

시작하기 →