MarkItDown이란
MarkItDown은 Microsoft가 만든 오픈 소스 Python 패키지이자 명령줄 도구이며, MIT 라이선스입니다. 언어 모델과 텍스트 분석을 위해 여러 종류의 파일을 Markdown으로 바꿉니다. PDF, Word, PowerPoint, Excel, HTML, CSV, JSON과 XML, EPUB, ZIP 압축 파일 등입니다. 이미지 설명과 음성 받아쓰기에는 웹에서 제공되는 서비스를 씁니다.
강점은 폭넓음입니다. 여러 사무용 파일이 섞인 폴더 전체를 한 번의 호출로 처리합니다. PDF의 경우 내장 변환기가 pdfminer.six로 텍스트를 뽑고, 양식이나 표처럼 짜인 페이지에는 pdfplumber를 씁니다.
pdftomd는 MarkItDown이 아니며 MarkItDown을 실행하지도 않습니다. PDF 전용으로 만든 별개의 변환기로, 브라우저에서 돌아갑니다. 이 페이지에서는 둘이 어떻게 다른지, 그리고 필요하다면 MarkItDown을 직접 실행하는 방법을 설명합니다.
MarkItDown 실행 방법
Python 3.10 이상이 필요합니다. PDF 의존성만 넣어서 설치하세요.
pip install 'markitdown[pdf]'
명령줄에서 파일을 변환합니다.
markitdown report.pdf -o report.md
Python에서는 이렇게 합니다.
from markitdown import MarkItDown
md = MarkItDown()
result = md.convert("report.pdf")
print(result.markdown)
벤치마크에서 버전 0.1.9로 정확히 이렇게 실행했습니다. Word, PowerPoint, Excel 등 다른 형식도 쓰려면 [pdf] 대신 'markitdown[all]'을 쓰세요.
PDF에서 얻는 것
공개 PDF 16개로 시험해 보니 MarkItDown 0.1.9의 결과는 이랬습니다.
- 제목 없는 일반 텍스트. 어떤 문서에도
#제목이 하나도 붙지 않아, 보고서나 논문의 구조가 사라졌습니다. - PDF의 줄바꿈과 하이픈이 그대로. 문장이 PDF 줄 끝마다 끊겼고,
pur- suant처럼 줄 끝 하이픈으로 갈라진 단어가 307개 남았습니다. - 머리글과 바닥글이 남음. 페이지마다 반복됩니다.
- 연구 논문에서 빠진 텍스트. 연구 논문 세 편에서는 단어의 약 절반에서 4분의 3이 결과에서 빠졌습니다.
- 스캔본에서는 아무것도 안 나옴. 기본 설치에는 PDF용 OCR이 없어서 스캔한 페이지는 비어 있었습니다.
markitdown-ocr플러그인을 쓰면 직접 설정한 API를 통해 페이지 그림을 비전 모델에 보내 OCR을 더할 수 있습니다.
단순한 문서에서는 잘 됐습니다. 판결문, 양식, 중국어·일본어·한국어 문서는 단어가 모두 남았습니다. 문서별 전체 수치는 벤치마크에 있습니다.
같은 PDF를 pdftomd로
| MarkItDown 0.1.9 | pdftomd | |
|---|---|---|
| 실행 위치 | Python, 내 컴퓨터 | 브라우저, 내 컴퓨터 |
| 설치 | pip install 'markitdown[pdf]' | 없음 |
| 형식 | PDF, Office, HTML, EPUB 등 | |
| 제목 | 없음 | 있음, 글자 크기와 굵기로 판단 |
| 문단 | PDF 줄바꿈 그대로 | 줄을 이어 문단으로 |
| 머리글, 바닥글, 쪽 번호 | 남음 | 없앰, 남기는 스위치 있음 |
| 줄 끝 하이픈 | 남음 | 단어 목록으로 확인해 이음 |
| 표 | 텍스트로, 양식 같은 페이지에서는 표로 | Markdown 표, 표 있는 페이지 표시 |
| 스캔 PDF | 클라우드 비전 모델을 쓰는 플러그인 | 브라우저 안 OCR 내장 |
| 토큰 수와 RAG 청크 | 없음 | 있음 |
| 라이선스 | MIT | 무료 사용 |
Word나 PowerPoint 파일도 변환해야 하거나 Python으로 파이프라인을 짜고 있다면 MarkItDown이 더 실용적입니다. PDF라면, 특히 지금 바로 결과가 필요하다면 이 페이지 위쪽의 변환기를 쓰세요.
자주 묻는 질문
MarkItDown 공식 웹사이트가 있나요?
MarkItDown은 Python 패키지와 GitHub로 공개됩니다. Microsoft는 웹사이트로 제공하지 않으므로, "MarkItDown 온라인"이라는 사이트는 제3자가 운영하며 뒤에서 도는 엔진도 사이트마다 다릅니다. pdftomd는 MarkItDown을 실행하지 않고, 파일을 올리지도 않습니다.
MarkItDown은 스캔 PDF를 읽을 수 있나요?
기본 설치로는 못 읽습니다. 직접 설정한 비전 모델에 그림을 보내는 markitdown-ocr 플러그인을 더하거나, Microsoft의 유료 클라우드 서비스인 Azure Document Intelligence 옵션을 쓸 수 있습니다. pdftomd는 브라우저에서 돌아가는 OCR 모델로 스캔본을 읽습니다. 스캔 PDF를 Markdown으로를 보세요.
LLM에 문서를 줄 때는 어느 쪽이 낫나요?
PDF라면 제목이 있고, 문단이 이어지고, 머리글 반복이 없는 결과가 모델이 따라가기 쉽고 토큰도 덜 듭니다. pdftomd는 토큰 수도 보여 주고 문서를 청크로 나눌 수도 있습니다. LLM용 PDF를 Markdown으로를 보세요.
Python에는 또 어떤 선택지가 있나요?
PyMuPDF4LLM, Docling, Marker 모두 PDF를 Markdown으로 바꾸며, 강점과 라이선스가 저마다 다릅니다. Python으로 PDF를 Markdown으로에 각각 동작하는 코드가 있습니다.
MarkItDown은 Microsoft의 프로젝트입니다. pdftomd는 독립 서비스이며 Microsoft와 관계가 없습니다.