PDF 표를 마크다운 표로 변환하기
작성 pdftomd.tools 팀 · 업데이트 · 6분 분량
PDF 표를 마크다운으로 변환하려면 텍스트 레이어에서 셀을 다시 짜 맞추는 변환기를 쓰고, 결과를 원래 페이지와 비교하면 됩니다. 테두리가 있는 격자와 잘 정렬된 열은 깔끔하게 바뀝니다. 병합 셀, 회전된 표, 여러 페이지에 걸친 표는 손을 봐야 합니다. 저희 온라인 PDF MD 변환기는 바로 고쳐 쓸 수 있는 GFM 파이프 표를 만들어 줍니다.

PDF 표가 깨지는 이유: PDF에는 셀이 아니라 위치가 정해진 글자가 들어 있음
PDF 표를 마크다운으로 변환하기 전에, 파일 안에 실제로 무엇이 들어 있는지 알아 두면 도움이 됩니다. 스프레드시트는 '12 $'가 3행 2열에 있다는 것을 압니다. PDF는 대개 모릅니다. 페이지에는 x, y 좌표에 놓인 글자 조각과, 테두리가 있다면 그 선을 따로 그린 정보가 들어 있을 뿐입니다. PDF 표준 ISO 32000-2가 설명하는 구조가 그렇습니다. 태그가 붙은 PDF는 표 구조를 담을 수 있지만, 내보낸 보고서나 청구서 대부분은 태그가 없거나 변환기가 믿을 수 없는 태그를 갖고 있습니다.

그래서 PDF 표를 마크다운으로 바꾸려는 도구는 모두 일종의 추리를 합니다. 단어와 그 위치를 읽고(저희는 pdf.js를 씁니다), 선을 찾은 다음, 열과 행이 어디 있는지 판단합니다. 셀이 병합되어 있거나, 글자가 불규칙하게 줄바꿈되거나, 표가 옆으로 돌아가 있으면 추론이 어려워집니다.
마크다운 표로 표현할 수 있는 것 (GFM 파이프 표)
기본 마크다운에는 표가 없습니다. 흔히 쓰는 문법은 GitHub Flavored Markdown에서 왔습니다. GFM 파이프 표는 머리글 행 하나, 하이픈으로 된 구분 행 하나, 그리고 필요한 만큼의 데이터 행으로 이루어집니다. 구분 행의 콜론으로 왼쪽, 오른쪽, 가운데 정렬을 정합니다. 셀 안의 세로 막대는 \|로 씁니다.
| Plan | Price | Seats |
| :------- | ----: | :-------- |
| Free | $0 | 1 |
| Team | $12 | 10 |
| Business | $49 | Unlimited |“블록 요소는 표 안에 넣을 수 없다.”
이 규칙이 모든 변환의 한계를 정합니다. 셀에는 인라인 글자, 링크, 코드는 넣을 수 있지만 목록, 두 번째 문단, 중첩된 표는 넣을 수 없습니다. 병합 셀, 두 번째 머리글 행, 표 제목을 위한 문법도 없습니다. 머리글 하나와 단순한 격자를 넘어서는 것은 모두 단순화해야 합니다.
테두리 있는 표, 없는 표, 병합 셀: 무엇을 기대할 수 있나

표에 테두리가 있느냐 없느냐에 따라 도구가 셀을 찾는 방식이 달라집니다. 저희 도구는 두 가지 전략을 씁니다.
- 테두리가 있는 표는 셀 사이에 선이 그려져 있습니다. 선이 격자를 이루므로 행과 열이 그림에서 바로 나옵니다. 가장 안정적으로 변환됩니다.
- 테두리가 없는 표는 선 없이 정렬된 열에 글자만 있습니다. 변환기는 빈칸 위치가 겹치는 행을 세 줄 이상 찾고, 목록이나 2단 본문, 우연히 정렬된 문단을 표로 착각하지 않도록 걸러 냅니다.
- 병합 셀은 두 열 이상에 걸쳐 있습니다. 마크다운은 병합을 표현할 수 없으므로, 글자는 첫 셀에 들어가고 덮여 있던 셀은 비워 둡니다.
셀 안에서 줄바꿈되는 글자도 자주 걸리는 함정입니다. 세 줄짜리 셀도 셀 하나일 뿐인데, 대충 만든 변환기는 이를 세 개의 행으로 만들어 버립니다. 저희 변환기는 위쪽 정렬이든 세로 가운데 정렬이든 줄바꿈된 줄을 다시 한 셀로 합칩니다.
단계별: 브라우저에서 PDF 표를 마크다운으로 변환하기
- 변환기를 열고 파일을 끌어다 놓습니다. 아무것도 업로드되지 않으며, 페이지가 파일을 로컬에서 읽고 바로 변환을 시작합니다.
- 미리보기 아래 요약을 확인합니다. 찾은 표의 개수가 나오므로 빠진 표가 있으면 바로 알 수 있습니다.
- 마크다운 표를 하나씩 원본과 비교합니다. 먼저 열 개수를 세고, 그다음 첫 행과 마지막 행을 확인하세요.
- 마크다운을 복사하거나 .md 파일을 내려받아 나머지는 편집기에서 고칩니다.

Pen \| blue가 되어 표가 깨지지 않습니다.대부분 3단계를 건너뜁니다. 언뜻 보기에는 맞는 것 같아도, 한 행이 왼쪽으로 한 칸 밀려 있을 수 있습니다. 페이지의 나머지 부분에 대한 점검은 서식을 잃지 않고 변환하기 가이드에 정리해 두었습니다.
표를 손으로 고치기 (그리고 CSV라는 탈출구)
PDF 표를 마크다운으로 변환한 뒤 저희가 가장 자주 하는 수정은 다음과 같습니다.
- 병합 셀. 마크다운에는 병합이 없으니, 덮인 셀마다 값을 반복하거나 첫 셀에만 두고 표 아래에 메모를 답니다.
- 페이지마다 나뉜 표. 남는 머리글 행과 구분 행을 지우면 조각들이 다시 표 하나가 됩니다. 아래 테스트에서는 모든 행이 나뉘는 지점을 무사히 넘었고, 이음매만 손보면 됐습니다.
- 머리글 행이 없을 때. 첫 행이 이미 데이터라면 머리글을 직접 추가하세요. 머리글 없는 파이프 표는 올바른 표가 아닙니다.
- 열 개수가 맞지 않을 때. 행마다 세로 막대를 세어 보세요. 셀이 모자란 행은 GFM 렌더러가 빈 셀로 채우고, 넘치는 행은 잘라 냅니다.

표가 파이프 표로 쓰기에 너무 넓거나 불규칙하다면 CSV가 좋은 탈출구입니다. 행을 스프레드시트에 붙여 넣어 정리한 뒤, CSV를 마크다운 파일 옆에 두거나 단순화한 표를 다시 붙여 넣으세요. 변환이 전부 아니면 전무일 필요는 없습니다.
저희 테스트 세트: 12가지 표 레이아웃과 결과
PDF 표 마크다운 변환이 제대로 되는지 보려고, 저희는 reportlab과 LibreOffice로 만든 테스트 PDF 12개를 관리합니다. 위에서 말한 레이아웃에 더해, 표가 나오면 안 되는 파일 세 개도 들어 있습니다. 변환기를 고칠 때마다 이 세트로 확인합니다. 실제 PDF 표본이 아니라 합성 테스트 파일이므로, 결과는 성공률이 아니라 레이아웃별로 어떤 일이 생기는지 보여 주는 지도로 읽어 주세요.
| 레이아웃 | 예상 | 찾음 | 결과 |
|---|---|---|---|
| 테두리가 있는 격자 | 1 | 1 | 통과 |
| 오피스 프로그램에서 만든 테두리 격자, 셀 안에 세로 막대 | 1 | 1 | 통과 |
| 테두리 없음, 숫자 오른쪽 정렬 | 1 | 1 | 통과 |
| 테두리 있음, 셀 안에서 줄바꿈되는 글자 | 1 | 1 | 통과 |
| 테두리 없음, 셀 안에서 줄바꿈되는 글자 | 1 | 1 | 통과 |
| 테두리 없음, 여러 줄 셀이 세로 가운데 정렬 | 1 | 1 | 통과 |
| 머리글 아래 선 하나만, 본문과 목록 사이 | 1 | 1 | 통과 |
| 한 페이지에 테두리 있는 표와 없는 표 | 2 | 2 | 통과 |
| 테두리 있음, 두 열에 걸쳐 병합된 셀 하나 | 1 | 1 | 통과 (병합 셀 풀어서 표시) |
| 2단 본문 (표가 나오면 안 됨) | 0 | 0 | 통과 |
| 문단과 번호 목록 (표가 나오면 안 됨) | 0 | 0 | 통과 |
| 90도 회전된 표 | 0 | 0 | 통과 |
이 글을 위해 테스트를 두 가지 더 했습니다. 첫째는 왕복 테스트입니다. 마크다운 표 네 개를 저희 도구로 PDF로 내보낸 뒤 다시 변환했습니다. 네 개 모두 인식됐고, 이스케이프한 세로 막대와 오른쪽 정렬 숫자를 포함해 17행 중 17행이 원문과 같았습니다. 둘째는 저희 도구가 네 페이지로 나눈 60행짜리 표입니다. 다시 변환하자 페이지마다 하나씩 표 네 개가 나왔고 60행이 모두 있었습니다. 2~4쪽에서는 첫 행이 머리글로 올라갔는데, 위에서 말한 바로 그 이음매입니다.
레이아웃 모델이 필요한 경우
텍스트 레이어를 읽는 도구는 PDF 표를 마크다운으로 빠르고 안전하게 변환하지만, 감당하지 못하는 표도 있습니다. 스캔한 표는 OCR로 글자를 입히기 전까지 읽을 수 있는 텍스트가 없습니다. 머리글이 겹겹이 있고 셀이 여러 칸에 걸친 빽빽한 학술 표는 페이지를 이미지로 보는 모델이 필요합니다.
- Docling은 표 구조와 읽기 순서를 지원한다고 밝히며, 파이썬으로 로컬에서 실행됩니다.
- marker는 표 서식을 정리하고, 문서에 따르면 선택 사항인 LLM 모드로 페이지에 걸친 표를 합칠 수 있습니다. 상업적으로 쓰기 전에 모델 가중치의 라이선스를 확인하세요.
둘 다 설치할 것이 더 많고, 점검 단계도 여전히 필요합니다. 일주일에 표 몇 개 정도라면 브라우저에서 PDF 표를 마크다운으로 변환하고 이음매는 손으로 고친 뒤, 무거운 도구는 정말 필요한 파일에만 쓰세요.
출처
- GitHub Flavored Markdown Spec, 4.10 Tables (extension) — GitHub, 2019
- ISO 32000-2:2020 Document management — Portable document format — Part 2: PDF 2.0 — ISO, 2020
- pdf.js — Mozilla
- Docling — Docling project
- marker — Datalab
자주 묻는 질문
PDF 표를 마크다운으로 자동 변환할 수 있나요?
텍스트로 저장된 표라면 됩니다. 테두리 격자와 잘 정렬된 테두리 없는 표는 텍스트 레이어를 읽는 변환기로 깔끔하게 바뀝니다. 스캔한 표는 먼저 OCR이 필요하고, 병합 셀이나 회전된 표는 손으로 고쳐야 합니다.
마크다운에서 병합 셀은 어떻게 처리되나요?
마크다운 파이프 표는 셀을 병합할 수 없습니다. 변환기는 글자를 첫 셀에 넣고 덮인 셀을 비워 둡니다. 셀마다 값을 반복하거나 표 아래에 메모를 추가하세요.
표가 왜 여러 개로 나뉘었나요?
PDF는 페이지마다 따로 읽기 때문에, 여러 페이지에 걸친 표는 페이지마다 표 하나로 돌아옵니다. 남는 머리글 행과 구분 행을 지우면 합칠 수 있으며, 긴 보고서에서 가장 흔한 수정입니다.
마크다운 표의 셀에 목록이나 줄바꿈을 넣을 수 있나요?
GFM에서는 안 됩니다. 셀 안에는 블록 콘텐츠를 넣을 수 없습니다. 목록 항목은 쉼표로 이어 한 줄로 쓰거나, 렌더러가 HTML을 허용하면 <br>을 쓰세요.
PDF 표를 마크다운으로 가장 빨리 바꾸는 방법은 무엇인가요?
파일이 몇 개라면 브라우저 변환기로 바꾸고 결과를 손으로 고치세요. 스캔했거나 복잡한 파일이 수백 개라면 Docling 같은 로컬 레이아웃 모델이 추가 설치를 감수할 만할 수 있습니다.
표가 마크다운으로 쓰기에 너무 넓으면 어떻게 하나요?
마크다운에 폭 제한은 없지만, 넓은 표는 읽기도 고치기도 어렵습니다. 공통 기준 열을 둔 두 표로 나누거나, 데이터를 CSV로 두고 링크를 거세요.

