서식을 잃지 않고 PDF를 마크다운으로 변환하기

작성 pdftomd.tools 팀 · 업데이트 · 7분 분량

짧은 답: 서식을 잃지 않고 PDF를 마크다운으로 변환할 수 있는 것은 마크다운이 표현할 수 있는 구조, 즉 제목, 목록, 표, 코드뿐입니다. 파일에 진짜 텍스트 레이어가 있는지 확인하고, 무료 PDF 마크다운 변환 도구로 변환한 다음, 결과를 쓰기 전에 제목, 목록, 표를 점검하세요. 글꼴, 색상, 정확한 간격 같은 시각적 디자인은 절대 따라오지 않습니다.

일러스트: 제목, 문단, 표가 있는 PDF 페이지가 같은 구조의 마크다운 파일로 바뀜

마크다운에서 살아남는 '서식'과 사라지는 서식

PDF는 페이지가 어떻게 보이는지를 기술합니다. ISO 32000-2에 정의된 이 형식은 페이지 위 위치마다 글리프를 저장하고, 글꼴, 선, 이미지도 함께 담습니다. 작성자가 태그를 넣지 않았다면 스스로는 '이것이 제목'이라는 사실을 모르며, 돌아다니는 파일 대부분은 쓸 만한 태그가 없습니다. 마크다운은 정반대입니다. 각 블록이 무엇인지(제목, 목록 항목, 표의 행)를 기록하고, 모양은 표시하는 쪽에 맡깁니다.

그래서 서식을 잃지 않고 PDF를 마크다운으로 변환하는 법을 묻는다면, 솔직한 답은 '서식'이 두 종류로 나뉜다는 것입니다. 구조는 다시 만들 수 있습니다. 모양은 마크다운에 해당 문법이 없어서 만들 수 없습니다.

변환으로 옮길 수 있는 것
PDF의 서식마크다운에서참고
제목(큰 글꼴)예글꼴 크기로 재구성, 수준 확인 필요
글머리 기호·번호 목록예번호는 복사하지 않고 새로 씀
표예, 파이프 표로머리글 행 하나, 병합 셀 없음
링크인쇄된 URL만단어 뒤에 숨은 링크는 읽지 않음
고정폭 글꼴의 코드예, 코드 블록으로언어 이름은 알 수 없음
굵게·기울임저희 도구로는 안 됨글꼴 굵기 분석이 필요
이미지와 차트아니요따로 내보내기
글꼴, 색상, 페이지 레이아웃아니요마크다운에 해당 문법이 없음
“마크다운 서식 문법의 가장 중요한 설계 목표는 최대한 읽기 쉽게 만드는 것이다.”
John Gruber, Markdown 프로젝트 페이지, Daring Fireball (번역)

이 설계 목표 덕분에 이 교환은 할 만한 가치가 있습니다. 페이지의 정확한 모양을 포기하는 대신, 읽기 좋고 Git diff가 깔끔하며 위키나 채팅 모델에 붙여 넣을 수 있는 일반 텍스트를 얻습니다. CommonMark 명세가 핵심 문법을 정의하고, GitHub Flavored Markdown이 표와 작업 목록을 더합니다.

먼저 PDF 확인: 텍스트 레이어, 단, 글꼴

서식을 잃지 않고 PDF를 마크다운으로 변환하려면 변환 전에 시작하세요. 2분 확인이 1시간 수리를 줄여 줍니다. 아무 뷰어로나 파일을 열고 텍스트 레이어를 확인하세요. 문장 하나를 선택해 다른 곳에 붙여 넣어 보면 됩니다. 된다면 페이지에 진짜 텍스트가 있습니다. 페이지 전체가 한 덩어리로 선택되거나 아무것도 선택되지 않으면 스캔한 PDF, 즉 읽을 수 있는 문자가 없는 페이지 사진입니다.

일러스트: 돋보기가 2단 페이지의 선택 가능한 텍스트 줄을 보여 주고, 옆에는 경고 표시가 붙은 스캔 페이지
선택할 수 있는 텍스트가 있으면 변환기가 읽을 것이 있습니다. 스캔본은 없습니다.

명령줄에서는 Poppler의 pdffonts가 파일의 글꼴을 보여 줍니다. 글자로 가득한 페이지인데 목록이 비어 있다면 스캔본일 가능성이 높습니다. 그다음 출력이 얼마나 깔끔할지 좌우하는 레이아웃 특징 세 가지를 살펴보세요.

  • 단 나누기. 2단 논문과 뉴스레터는 변환기가 읽기 순서를 추측하게 만듭니다.
  • 제목 스타일. 큰 글꼴로 된 제목은 찾기 쉽습니다. 본문 크기에 굵게만 한 제목은 크기 기반 감지에서는 일반 문단처럼 보입니다.
  • 글꼴. 고정폭 글꼴의 코드는 코드 블록이 될 수 있습니다. 특이한 글꼴 인코딩은 글자를 네모나 알아볼 수 없는 기호로 바꾸기도 하는데, 이건 어떤 변환기도 고치지 못합니다.
스크린샷: 이미지로만 된 PDF를 넣자 저희 변환기가 '읽을 수 있는 텍스트 없음'을 표시하고 OCR을 하지 않는다고 안내함
이미지로만 된 파일을 넣은 저희 변환기 스크린샷: 스캔본으로 보이며 OCR 없이 텍스트 레이어만 읽는다고 알려 줍니다.

단계별: 서식을 잃지 않고 PDF를 마크다운으로 변환

이 절차는 텍스트 레이어를 읽는 변환기라면 무엇이든 통합니다. 저희는 정확히 무엇을 하는지 설명할 수 있어서 저희 도구를 씁니다. pdf.js로 텍스트 레이어를 읽고, 단어를 줄로 묶은 뒤, 크기와 위치를 보고 제목, 목록, 표, 코드를 재구성합니다. 파일은 업로드되지 않습니다.

  1. 변환기를 열고 파일을 놓으세요. 원본 텍스트가 필요한 경우가 아니라면 'AI 흔적 정리'는 켜 두세요.
  2. 미리보기 아래 요약을 읽으세요. 페이지 수, 문자 수, 찾은 표 개수가 나옵니다. 문자가 아주 적은 페이지가 많다면 일부 페이지가 스캔본이라는 뜻입니다.
  3. 미리보기를 위에서 아래로 훑으세요. 제목 수준을 먼저, 다음은 목록, 그다음 표를 보세요.
  4. .md 파일을 복사하거나 내려받아 편집기에서 미리보기와 나란히 여세요.
  5. 아래 체크리스트에서 찾은 것을 고친 뒤 커밋하거나 붙여 넣으세요.
스크린샷: 저희 변환기에서 서식을 잃지 않고 PDF를 마크다운으로 변환한 결과, 미리보기에 제목, 목록, 표가 보임
스크린샷: 제목, 목록, 표가 있는 한 쪽짜리 테스트 파일을 서식을 잃지 않고 마크다운으로 변환. 요약에 표 1개가 표시됩니다.

주로 보고서와 매뉴얼을 변환한다면 PDF MD 변환기 페이지에서 제목과 목록 규칙을 더 자세히 볼 수 있습니다. 표가 대부분인 파일이라면 PDF 표를 마크다운으로 변환하는 가이드를 읽어 보세요.

제목, 목록, 표: 확인할 점

제목, 목록, 표가 문서 구조의 대부분을 담당하므로, 독자에게 중요한 서식이 유지되는지는 이 셋에 달려 있습니다.

제목

변환 중 제목을 유지하려고 변환기는 각 줄의 높이를 본문과 비교합니다. 저희 도구는 가장 큰 크기부터 #~####를 붙이고, 짧은 대문자 줄도 제목으로 봅니다. 두 가지를 확인하세요. 문서 제목만 #인지, 그리고 절과 하위 절의 수준이 뒤바뀌지 않았는지입니다. 본문보다 아주 약간 큰 장 제목은 한 단계 내려갈 수 있습니다.

목록

목록 항목은 글머리 기호(•, –, *)나 점 또는 괄호가 붙은 숫자로 인식합니다. 번호 항목은 매번 1.로 쓰며, 마크다운에서는 1, 2, 3으로 표시됩니다. 두 번째 줄로 넘어간 항목을 살펴보세요. PDF에서 두 번째 줄은 그냥 텍스트일 뿐이지만, 같은 항목 안에 있어야 합니다.

표

표는 손이 가장 많이 가는 부분입니다. 선이 그어진 격자와 잘 정렬된 열은 대체로 잘 변환됩니다. 12가지 표 레이아웃으로 테스트한 결과, 표가 하나인 레이아웃 8개와 표가 두 개인 페이지 모두 예상한 행으로 돌아왔고, 2단 텍스트 페이지에서는 올바르게 표가 나오지 않았습니다. 90도 회전한 표는 감지되지 않았습니다. 파이프 표로는 병합 셀을 표현할 수 없어서 병합 셀은 풀립니다.

사라지는 것: 굵게/기울임, 그림, 단

어떤 도구도 어떤 종류의 서식도 잃지 않고 PDF를 마크다운으로 변환할 수는 없습니다. 형식 자체 때문에 잃는 것도 있고, 특정 도구의 한계 때문인 것도 있으니 구분해 두면 좋습니다.

  • 굵게와 기울임. 마크다운에는 **굵게**와 *기울임*이 있으니, 이건 형식이 아니라 도구의 한계입니다. 저희 변환기는 아직 강조를 감지하지 못해 표시 없이 단어만 출력합니다. 경고문처럼 의미가 있는 곳에는 강조를 다시 넣으세요.
  • 그림과 차트. 텍스트가 아니라 도형이나 삽입된 이미지라서 건너뜁니다. 필요한 이미지는 따로 내보내 ![alt](file.png)로 연결하세요.
  • 각주. 각주 내용은 남지만, 각주 표시와 각주의 연결은 사라집니다. 중요한 것은 직접 다시 만드세요.
  • 다단 레이아웃. 읽기 순서가 애매하면 단이 섞일 수 있습니다. 각 절의 첫 페이지를 확인하세요.
  • 정확한 간격과 페이지 나누기. 페이지 경계는 지워지고, 페이지 나누기로 잘린 문단은 안전한 경우 다시 이어 붙입니다.

반복되는 머리글·바닥글과 쪽 번호는 예외입니다. 이런 서식은 보통 없애고 싶어 하죠. 저희 변환기는 대부분의 페이지 위아래에서 반복되는 줄을 지우기 때문에 '연례 보고서 · 7쪽'이 문단 중간에 끼어들지 않습니다.

변환 후 정리 체크리스트

일러스트: 세 항목에 체크 표시가 된 체크리스트 옆에서 연필이 편집기의 한 줄을 고치는 모습

서식을 잃지 않고 PDF를 마크다운으로 변환하는 마지막 단계는 빠른 검토입니다. 미리보기를 연 편집기에서 이 목록을 확인하세요. 일반적인 보고서라면 몇 분이면 됩니다.

  • 맨 위에 # 제목 하나, 그다음 절은 ##. 건너뛴 수준은 고치세요.
  • 길 잃은 머리글이나 그림 설명이 제목이 되지 않았는지.
  • 목록 항목이 빠짐없고, 줄바꿈된 줄이 원래 항목 안에 있는지.
  • 모든 표에 머리글 행이 있고 모든 행의 셀 수가 같은지.
  • 병합되었거나 빈 셀을 채우거나 표 아래 메모로 설명했는지.
  • 의미를 바꾸는 곳에 강조를 다시 넣었는지.
  • 그림이 있던 자리에 이미지 자리 표시나 링크를 넣었는지.
  • 링크 보완: 저희 변환기는 인쇄된 URL은 텍스트로 남기지만, 단어 뒤에 숨은 링크는 읽지 않습니다.

채팅 모델이나 RAG 인덱스에서는 제목이 조각의 경계가 되므로 가장 중요합니다. 이 경우는 LLM용 가이드에서 다룹니다.

다른 도구가 더 나은 경우(OCR, 레이아웃 모델)

텍스트 레이어 변환기는 워드프로세서, 프레젠테이션 프로그램, 조판 시스템에서 내보낸 파일에 잘 맞습니다. 다음 세 가지 상황에서는 출력과 씨름하기보다 도구를 바꾸는 편이 낫습니다.

  • 스캔본. 스캔한 PDF는 먼저 OCR이 필요합니다. OCRmyPDF는 스캔 파일에 검색 가능한 텍스트 레이어를 추가하며, 그 뒤에는 텍스트 변환기가 읽을 수 있습니다.
  • 복잡한 레이아웃. 수식, 다단 페이지, 표가 많은 빽빽한 논문이라면 Docling 같은 레이아웃 모델 도구가 페이지 레이아웃, 읽기 순서, 표 구조를 지원한다고 밝힙니다. 파이썬으로 로컬에서 돌아가며 설치가 더 번거롭습니다.
  • 스캔과 텍스트가 섞인 대량 파일. marker는 텍스트 레이어에 OCR과 선택적 LLM 도움을 결합할 수 있습니다. 상업적으로 쓰기 전에 모델 가중치의 라이선스 조건을 확인하세요.

무엇을 고르든 점검 단계는 유지하세요. 파일이 애초에 저장하지 않은 서식은 어떤 도구도 지킬 수 없습니다. 소개 페이지에 저희 변환기가 하지 못하는 일(OCR 포함)을 정리해 두었습니다.

출처

  1. ISO 32000-2:2020 Document management — Portable document format — Part 2: PDF 2.0 — ISO, 2020
  2. CommonMark Spec, version 0.31.2 — CommonMark, 2024
  3. GitHub Flavored Markdown Spec — GitHub, 2019
  4. Markdown — Daring Fireball (John Gruber), 2004
  5. pdf.js — Mozilla
  6. pdffonts(1) manual page — Poppler / Debian
  7. OCRmyPDF — OCRmyPDF project
  8. Docling — Docling project

자주 묻는 질문

서식을 잃지 않고 PDF를 마크다운으로 변환할 수 있나요?

구조는 유지됩니다. 제목, 목록, 표, 코드, 페이지에 인쇄된 URL이 그렇습니다. 글꼴, 색상, 단, 정확한 간격 같은 시각적 디자인은 마크다운에 문법이 없어서 유지되지 않습니다. 굵게와 기울임은 마크다운에 있지만 저희 변환기는 아직 감지하지 못합니다.

제목이 왜 일반 문단으로 나왔나요?

저희 도구를 포함해 대부분의 변환기는 글꼴 크기로 제목을 감지합니다. 굵게만 하고 본문과 크기가 같은 제목은 문단처럼 보입니다. #를 직접 넣거나, 원본 문서를 진짜 제목 스타일로 다시 내보낼 수 있는지 확인하세요.

PDF에 텍스트 레이어가 있는지 어떻게 아나요?

문장 하나를 선택해 복사해 보세요. 텍스트로 붙여 넣어지면 텍스트 레이어가 있습니다. 명령줄에서는 pdffonts file.pdf가 파일의 글꼴을 보여 줍니다. 글자로 가득한 페이지인데 글꼴이 없다면 대개 스캔본입니다.

변환할 때 표는 어떻게 되나요?

감지된 표는 머리글 행 하나가 있는 GitHub 스타일 파이프 표가 됩니다. 병합 셀은 첫 셀에 내용을 두고 뒤에 빈 셀을 넣는 식으로 풀리며, 여러 쪽에 걸친 표는 쪽마다 하나씩 표로 나옵니다. 해결 방법은 표 가이드에 있습니다.

스캔한 PDF도 변환되나요?

텍스트 레이어 변환기로는 안 됩니다. 스캔본에는 읽을 수 있는 문자가 없어서 저희 도구는 '읽을 수 있는 텍스트 없음'을 표시합니다. 먼저 OCRmyPDF 같은 도구로 OCR을 돌린 뒤 결과를 변환하세요. OCR은 자체 오류가 생기므로 스캔본은 서식이 유지될 가능성이 더 낮습니다.

변환할 때 파일이 업로드되나요?

저희 변환기는 업로드하지 않습니다. PDF는 브라우저 탭 안에서 pdf.js가 읽습니다. 사이트가 수집하는 정보는 개인정보 처리방침에서 설명합니다.