PDF 표 추출
PDF의 표를 인식해 셀을 고친 뒤 CSV·XLSX로 저장
파일은 이 브라우저에서만 처리됩니다. 서버에 업로드하지 않습니다.
PDF의 표를 인식해 셀을 고친 뒤 CSV·XLSX로 저장
암호가 걸린 PDF입니다.
다른 도구로 이어서 편집
처리하고 있습니다…
모든 처리는 이 브라우저 안에서만 이루어집니다. 파일이 서버로 전송되지 않습니다.
다운로드할 파일이 준비됐습니다
이 결과로 이어서 편집
페이지 미리보기 열기
설정을 바꾸면 이전 결과는 숨겨집니다. 다시 만들어 최신 설정을 저장하세요.
암호화된 PDF는 먼저 암호를 해제하세요. 페이지 콘텐츠 중심으로 처리하며 목차·첨부·양식·서명 보존은 보장하지 않습니다. 원본을 보관하고 결과를 확인하세요.
처리 중…
0.0
멈춘 것이 아닙니다. 계산이 끝나면 결과가 표시됩니다.
PDF 표 추출 소개
PDF에는 「표」라는 구조가 없습니다. 선 몇 개와 그 사이에 흩어진 글자 조각이 있을 뿐이라, 표 추출은 그 배치를 보고 칸을 추측하는 작업입니다. 이 도구는 두 가지 추측법을 씁니다. 괘선이 그어진 표는 선을 따라 격자를 만들고(선 기준, lattice), 괘선 없이 공백으로 줄 맞춘 표는 글자 사이 빈 세로 틈을 칸 경계로 봅니다(공백 기준, stream). 자동 모드는 선 기준 표를 먼저 찾고, 남은 글자에서 공백 기준 표를 찾습니다.
찾은 표는 셀을 직접 고치고, 행·열을 합치거나 지우고, 구분선을 더하거나 빼서 다듬은 뒤 XLSX(표마다 시트) 또는 CSV로 받습니다.
선 기준: 선이 끊긴 곳이 병합 셀
페이지에 그려진 직선, 사각형 테두리, 얇게 칠한 사각형, 셀 배경의 가장자리를 모두 가로·세로 선분으로 모읍니다. 2pt 안쪽으로 어긋난 선은 같은 선으로 보고, 서로 닿는 선분끼리 묶어 한 덩어리를 한 표로 봅니다. 선 위치가 곧 행·열 경계입니다.
두 칸 사이 경계선이 그 구간에서 빠져 있으면 병합 셀로 판단해 엑셀에도 병합으로 내보냅니다. 반대로 디자인상 행 구분선을 생략한 표(머리글 아래 한 줄만 있는 표 등)는 여러 행이 한 칸으로 합쳐져 나올 수 있습니다. 이때는 그 표만 공백 기준으로 바꾸거나 행 구분선을 추가하세요.
공백 기준: 두 단 본문을 표로 착각하지 않게
한 줄 안에서 글자 덩어리가 칸 크기만큼 떨어져 있으면 「여러 칸 줄」로 보고, 이런 줄이 줄 높이의 2.6배 이내로 연달아 두 줄 이상 나오면 표 후보로 묶습니다. 그 줄들의 글자 덩어리를 가로로 투영해 한 번도 글자가 없는 세로 틈을 열 경계로 씁니다.
가장 흔한 오탐은 두 단 본문입니다. 그래서 칸 글자 수의 중앙값이 40자를 넘거나, 2열인데 25자를 넘거나, 한 덩어리가 페이지 폭의 45%를 넘는 2열 후보는 표로 보지 않습니다. 값이 있는 칸이 4개 미만이어도 버립니다. 반대로 셀 안에서 글이 여러 줄로 줄바꿈되는 표는 한 셀이 여러 행으로 쪼개지므로 「아래 행과 합치기」로 정리해야 합니다.
스캔 PDF의 표
글자 층이 없는 스캔 PDF에서는 아무것도 찾지 못합니다. PDF OCR로 텍스트 층을 넣으면 글자는 생기지만, 괘선은 여전히 사진 속 픽셀일 뿐 벡터 선이 아닙니다. 따라서 OCR한 문서에서는 선 기준이 동작하지 않고 공백 기준만 쓸 수 있습니다. 괘선이 촘촘한 스캔 표라면 공백 기준에 칸 간격이 좁아 열이 합쳐지기 쉬우니, 열 구분선을 직접 추가하는 편이 빠릅니다.
여러 쪽에 걸친 표와 내보내기 규칙
다음 쪽의 표가 열 수가 같고, 열 경계가 6pt 안에서 일치하거나 첫 행(머리글)이 같으면 이어진 표로 합칠 수 있습니다. 다음 쪽에서 반복된 머리글 행은 기본으로 지웁니다.
내보낼 때 「1,234」 「(1,234)」 「₩1,000」 「−12」는 숫자로 바꿔 엑셀에서 계산되게 합니다. 괄호는 회계식 음수로 읽습니다. 「007」처럼 0으로 시작하는 코드와 16자리 이상 숫자(카드·주민번호 등)는 텍스트로 둡니다. 엑셀은 숫자를 15자리 정밀도까지만 저장해 16번째 자리부터 0으로 바뀌기 때문입니다. CSV는 엑셀에서 한글이 깨지지 않도록 UTF-8 BOM을 붙이고, =·+·@로 시작하는 셀은 앞에 작은따옴표를 붙여 수식으로 실행되지 않게 합니다(CSV 인젝션 방지).
예시
회계식 음수
- 입력
셀 「(12,500)」- 결과
XLSX 숫자 −12500
괄호로 감싼 숫자는 음수로 읽고 쉼표 구분을 유지합니다. 「-(12,500)」처럼 부호와 괄호가 겹치면 모호해 텍스트로 둡니다.
주민등록번호 형태의 긴 숫자
- 입력
셀 「1234567890123456」(16자리)- 결과
텍스트로 저장
숫자로 넣으면 엑셀이 1234567890123450으로 바꿉니다. 15자리를 넘는 숫자는 텍스트로 두어 원래 값을 지킵니다.
2쪽에 걸친 거래 내역
- 입력
1쪽 표 5열, 2쪽 표 5열, 2쪽 첫 행이 같은 머리글- 결과
한 시트로 합치고 2쪽 머리글 행 제거
열 수가 같고 첫 행이 일치하므로 이어진 표로 봅니다.
사용 방법
- PDF를 넣으면 페이지별로 찾은 표가 목록에 나옵니다.
- 미리보기에서 칸 경계를 확인하고, 필요하면 표마다 인식 방식을 바꾸거나 구분선을 편집합니다.
- 내보낼 표를 고르고 XLSX·CSV 형식을 정해 받습니다.
자주 묻는 질문
표를 하나도 못 찾았어요.
스캔 PDF라 글자가 없거나, 괘선도 공백 정렬도 뚜렷하지 않은 경우입니다. 스캔이면 PDF OCR을 먼저 하고, 아니면 미리보기에서 「이 페이지 전체를 표로 만들기」 후 구분선을 넣으세요.
CSV를 엑셀에서 열었더니 숫자 앞에 '가 붙어 있어요.
=, +, @ 등으로 시작해 숫자로 읽히지 않는 셀은 수식 실행을 막기 위해 작은따옴표를 붙입니다. 순수한 음수(-12)에는 붙지 않습니다.
한 셀의 글이 여러 행으로 나뉘었습니다.
셀 안 줄바꿈을 공백 기준이 행으로 본 경우입니다. 행 머리의 「아래 행과 합치기」로 합치세요.
병합 셀이 풀려서 나와요.
CSV는 병합을 표현할 수 없습니다. 병합을 유지하려면 XLSX로 받으세요.
출처
- Camelot documentation — How it works (Lattice and Stream)
- RFC 4180 — Common Format and MIME Type for CSV Files
- OWASP — CSV Injection
- Microsoft — Excel specifications and limits (15-digit precision)
기준일: