PDF에서 표를 추출하는 방법
PDF의 표를 복사해 Excel에 붙여넣으면 대개 값이 뒤섞인 긴 한 열이 되거나 아무것도 나오지 않습니다. 여러분의 잘못이 아닙니다: PDF는 애초에 표를 저장하지 않습니다. 이 가이드는 실제로 작동하는 4가지 방법을 — 빠른 복사·붙여넣기 요령부터 스캔 문서까지 처리하는 도구까지 — 비교해, 파일에 맞는 방법을 고를 수 있게 합니다.
PDF 표 추출이 어려운 이유
PDF에는 표라는 개념이 없습니다. 행과 열처럼 보이는 것은 x/y 좌표에 배치된 개별 텍스트 조각일 뿐이고, 때때로 그 사이에 선이 그려져 있을 뿐입니다. "표"는 여러분의 눈에만 존재합니다 — 파일에는 셀도, 행도, 헤더도 저장되어 있지 않습니다.
따라서 모든 추출 방법은 재구성입니다: 어떤 텍스트 조각이 같은 셀에 속하는지, 어떤 셀이 한 행을 이루는지, 열이 어디서 시작하는지를 알고리즘이 추측하는 것입니다. 눈에 보이는 격자선이 있는 괘선 표는 재구성하기 쉽지만, 공백으로만 구분된 표, 병합된 셀, 여러 줄짜리 셀, 여러 페이지에 걸친 표에서 대부분의 도구가 실패합니다.
스캔 PDF는 한 겹이 더 얹힙니다: 페이지가 사진이므로 OCR을 돌리기 전까지는 텍스트 자체가 없습니다. 문서가 이 중 어떤 문제를 갖고 있는지에 따라 방법을 고르세요.
방법 1: Excel에 복사·붙여넣기 (빠름, 작은 괘선 표)
단순하고 괘선이 잘 그려진 표라면 PDF 뷰어에서 선택해 복사한 뒤 Excel이나 Google Sheets에 붙여넣으세요. 모든 값이 한 열에 들어갔다면 데이터 → 텍스트 나누기(Excel) 또는 데이터 → 텍스트를 열로 분할(Sheets)로 값을 다시 나눌 수 있습니다.
유용한 변형 하나: 먼저 일반 텍스트 편집기에 붙여넣어 구조가 얼마나 살아남았는지 확인하세요. 값이 일정한 공백이나 탭으로 구분되어 있다면 텍스트 나누기로 표를 복원할 수 있지만, 행이 서로 뒤섞이거나 잘려 있다면 아무리 나눠도 고칠 수 없습니다.
잘 되는 경우: 셀 값이 짧은 단일 페이지 괘선 표. 실패하는 경우: 병합된 셀, 셀 안의 여러 줄 텍스트, 천 단위 구분 기호가 있는 숫자가 쪼개지는 경우, 그리고 모든 스캔 문서.
방법 2: Excel Power Query 또는 Word (내장 기능, 추가 도구 불필요)
최신 Excel은 PDF 표를 직접 가져올 수 있습니다: 데이터 → 데이터 가져오기 → 파일에서 → PDF에서. Excel이 문서를 스캔해 감지된 모든 표를 나열하고 미리 보기를 보여줍니다 — 표를 선택하고 로드를 누르면 제대로 된 스프레드시트 범위로 들어옵니다. Windows에서 가장 좋은 내장 옵션입니다(Microsoft 365 또는 2021 이상 라이선스가 필요하며, Excel for Mac에서는 일부 버전에서만 제공됩니다).
Word도 PDF를 직접 열 수 있습니다(파일 → 열기 → PDF 선택). 문서를 편집 가능한 파일로 변환하며, 단순한 표는 대개 실제 Word 표로 살아남아 Excel에 복사할 수 있습니다.
잘 되는 경우: 괘선이 뚜렷한 디지털 생성 PDF. 실패하는 경우: 공백으로만 구분된 표는 자주 누락되거나 잘못 나뉘고, 여러 페이지에 걸친 표는 조각조각 따로 들어오며, 스캔 PDF는 아무것도 나오지 않습니다 — Power Query는 OCR을 하지 않습니다.
방법 3: Python 라이브러리 — camelot, tabula-py, pdfplumber (개발자용)
많은 PDF에서 프로그래밍 방식으로 표를 추출해야 한다면, 검증된 오픈소스 선택지는 camelot(괘선 표에 가장 강함, 두 가지 감지 모드), tabula-py(Java Tabula 엔진의 래퍼, 일관된 레이아웃에 안정적), pdfplumber(단어·선·사각형에 대한 저수준 제어 — 커스텀 로직이 필요할 때 최적)입니다.
최소한의 camelot 예제: pip install camelot-py[cv]를 실행한 뒤 tables = camelot.read_pdf("report.pdf", pages="all")를 호출하면 tables[0].df가 pandas DataFrame을 돌려줍니다. .to_csv()나 .to_excel()로 내보내세요.
함정: 라이브러리마다 선호하는 레이아웃 스타일이 있는데, 실제 문서는 스타일이 섞여 있습니다. 문서 유형별로 설정을 튜닝해야 하고(camelot의 flavor="stream" vs "lattice", tabula의 영역 힌트), 셋 모두 스캔 PDF는 처리하지 못합니다 — OCR을 먼저 돌려야 하고 그 과정에서 레이아웃을 잃게 됩니다.
표를 넘어 Python에서의 PDF 파싱 전반이 궁금하다면 Python으로 PDF를 Markdown으로 변환하는 가이드를 참고하세요.
방법 4: AI 기반 추출 (스캔 PDF, 혼합 레이아웃, 대량 처리)
가장 새로운 접근은 사람이 읽듯이 페이지를 읽는 문서 이해 모델을 사용하는 것입니다 — 괘선이나 좌표 휴리스틱에 의존하는 대신 시각적 레이아웃에서 표 구조를 감지합니다. 스캔 문서, 촬영된 페이지, 일관성 없는 레이아웃을 한 번에 처리하는 유일한 방법 계열입니다.
ParseJet가 이 방식으로 작동합니다: parsejet.com/tools/pdf-to-markdown에서 PDF를 업로드하면 표가 읽기 순서 그대로 깔끔한 Markdown 표로 돌아오고, 스캔 페이지는 자동으로 OCR 처리됩니다. 텍스트 대신 데이터가 필요하면 API가 파싱된 문서를 구조화된 출력으로 반환하며(PDF to JSON 도구 참고), 파일당 POST 요청 한 번이면 되므로 일괄 파이프라인에도 실용적입니다.
잘 되는 경우: 스캔·촬영 문서, 괘선과 공백이 섞인 레이아웃, 문서별 튜닝이 불가능한 대량 처리. 트레이드오프: 호스팅 서비스라는 점입니다 — 깨끗한 PDF의 표 하나를 한 번만 뽑는다면 방법 1이나 2가 더 빠릅니다.
어떤 방법을 써야 할까요?
작은 괘선 표 하나를 한 번만: 복사·붙여넣기(방법 1), 붙여넣기가 뒤섞이면 Excel Power Query(방법 2)로 넘어가세요.
레이아웃이 같은 반복 보고서: 스프레드시트 사용자는 Power Query, 개발자는 camelot이나 tabula-py(방법 3) — 한 번의 설정이 이후 모든 파일에서 보상을 돌려줍니다.
스캔 문서, 사진, 지저분한 혼합 레이아웃: 다시 타이핑하지 않으려면 현실적으로 AI 추출(방법 4)이 유일한 선택지입니다.
레이아웃이 제각각인 수백 개의 문서: API를 통한 방법 4 — 방법 3 라이브러리의 문서별 튜닝은 레이아웃 유형이 몇 개만 넘어가도 감당이 안 됩니다.
어떤 PDF에서든 표 추출 — 스캔 문서 포함
PDF를 업로드하면 모든 표가 읽기 순서 그대로 깔끔한 Markdown으로 돌아옵니다. 스캔 페이지는 자동으로 OCR 처리됩니다. 가입 없이 무료로 사용해 보세요.
PDF to Markdown 사용해보기자주 묻는 질문
PDF의 표를 Excel로 어떻게 추출하나요?
먼저 Excel 내장 가져오기를 시도하세요: 데이터 → 데이터 가져오기 → 파일에서 → PDF에서, 그리고 감지된 표를 선택합니다. Excel이 표를 놓치거나 망가뜨리면 — 공백 구분 표나 스캔 표에서 흔한 일입니다 — ParseJet 같은 AI 도구로 추출해 Markdown 표를 Excel에 붙여넣으세요.
스캔한 PDF에서도 표를 추출할 수 있나요?
OCR이 가능한 도구로만 됩니다. 복사·붙여넣기, Power Query, Python 표 라이브러리는 모두 실제 텍스트가 필요합니다. AI 기반 추출기는 페이지를 먼저 OCR한 뒤 표를 재구성합니다 — 스캔본을 ParseJet에 업로드하면 표가 텍스트로 돌아옵니다.
PDF 표 추출에 가장 좋은 Python 라이브러리는 무엇인가요?
괘선 표에는 camelot, 일관된 보고서 레이아웃에는 tabula-py, 저수준 커스텀 로직이 필요하면 pdfplumber입니다. 셋 모두 레이아웃별 튜닝이 필요하고 스캔 페이지는 처리하지 못하므로, 입력이 지저분한 파이프라인은 대개 파싱 API를 호출하는 쪽으로 귀결됩니다.
붙여넣은 표가 왜 한 열에 다 들어가나요?
PDF 뷰어가 표의 행 조각들을 공백이 섞인 일반 줄로 직렬화했고, Excel이 각 줄을 셀 하나에 붙여넣었기 때문입니다. 텍스트 나누기로 다시 분할하거나, 표 구조를 재구성하는 방법(Power Query 또는 추출 도구)을 사용하세요.
병합된 셀이 있는 표는 어떻게 추출되나요?
대부분의 도구에서 잘 안 됩니다 — 병합된 셀은 모든 휴리스틱이 의존하는 행/열 격자를 깨뜨립니다. 구조 인식 추출이 가장 잘 처리하지만, 어떤 방법을 쓰든 병합 영역은 직접 검증할 것을 예상하세요.
많은 PDF에서 표를 자동으로 추출할 수 있나요?
네 — 파일마다 파싱 API에 POST하세요. ParseJet의 /v1/parse/auto/file은 표를 Markdown(또는 구조화된 JSON)으로 담아 문서를 반환하며, 무료 API 계정에는 월 300 크레딧이 포함됩니다.
관련 도구
PDF to Markdown Converter
Convert PDF to Markdown online for free. Preserves headings, lists, tables, and code blocks. No signup required — try it instantly or automate via API.
PDF to JSON Converter
Convert PDF to JSON online for free. Get text, title, and metadata as structured JSON — ready for your app, database, or AI pipeline. API included.
Extract Text from PDF
Extract text from PDF files online for free. Supports scanned documents, multi-page PDFs, and complex layouts. No installation needed — works in your browser.
Related guides
How to Convert PDF to Markdown in Python
Convert PDF to Markdown in Python: PyMuPDF4LLM, Marker, MarkItDown, and a hosted API compared — with working code, accuracy notes, and when to pick each.
How to Copy Text from a PDF
Learn 4 proven ways to copy text from any PDF file — regular, scanned, or protected. Includes free methods, step-by-step instructions, and troubleshooting tips.