PDF 문서를 Markdown 텍스트로 변환합니다. 제목, 목록, 문단을 자동으로 인식합니다.
Python 3.9 이상. PyMuPDF를 권장하며, 없으면 pypdf로 자동 대체합니다.
pip install pymupdf # 권장: 제목/굵게/이미지 추출 지원 # 또는 pip install pypdf # 대체: 텍스트만 추출
python pdf2md.py 문서.pdf # 문서.md 생성 python pdf2md.py 문서.pdf -o 결과.md # 출력 파일 지정 python pdf2md.py ./pdfs/ -o ./md/ # 폴더 안 PDF 일괄 변환 python pdf2md.py 문서.pdf --images # 이미지도 추출 (PyMuPDF) python pdf2md.py 문서.pdf --page-breaks # 페이지 구분선 삽입 python pdf2md.py 문서.pdf --stdout # 화면에 출력 python pdf2md.py 문서.pdf --no-tables # 표 인식 끄기 python pdf2md.py 스캔.pdf --ocr # 스캔 PDF: 텍스트 없는 페이지를 OCR
| -o, --output | 출력 파일 경로. 입력이 폴더면 출력 폴더로 사용됩니다. |
| --images | 이미지를 <이름>_images/ 폴더로 추출하고 Markdown에 링크를 넣습니다. |
| --page-breaks | 페이지 사이에 --- 구분선과 페이지 번호 주석을 넣습니다. |
| --stdout | 파일을 만들지 않고 표준 출력으로 내보냅니다. 파이프 연결에 유용합니다. |
| --no-tables | 표 인식을 끕니다. 셀 텍스트가 일반 문장으로 나옵니다. |
| --ocr | 텍스트 레이어가 없는(스캔) 페이지를 OCR로 읽습니다. 텍스트가 있는 페이지는 그대로 둡니다. PyMuPDF 필요. |
| --ocr-lang | OCR 언어. 기본값 kor+eng. 예: eng, jpn+eng. |
스캐너나 사진으로 만든 PDF는 글자가 이미지라서 웹페이지에서는 변환되지 않습니다.
Python 스크립트는 --ocr 옵션으로 텍스트 레이어가 없는 페이지만 Tesseract OCR로 읽어 변환합니다.
OCR 역시 내 컴퓨터에서만 실행됩니다.
pip install pymupdf # Tesseract 엔진 내장, 별도 설치 불필요 python pdf2md.py 스캔.pdf --ocr # 기본 언어 kor+eng python pdf2md.py 스캔.pdf --ocr --ocr-lang eng # 영문 문서 python pdf2md.py ./scans/ -o ./md/ --ocr # 폴더 일괄
처음 실행할 때 한국어·영어 언어 데이터(약 6MB)를 자동으로 내려받아 ~/.cache/pdf2md/tessdata에 저장합니다.
이미 Tesseract가 설치되어 있으면 그 언어 데이터를 그대로 씁니다. 처리 속도는 페이지당 1~3초 정도입니다.
OCR 결과는 원본 화질에 따라 오탈자가 있을 수 있고, 표와 제목 인식 정확도도 일반 PDF보다 낮습니다. 브라우저 안에서 OCR을 돌리는 것도 가능하지만 한국어 모델 다운로드(약 10MB)와 페이지당 수 초에서 수십 초의 처리 시간이 들어 이 페이지에는 넣지 않았습니다.
불러오는 중…