본문으로 건너뛰기

Markdown을 PDF로

.md 파일을 PDF로 변환하면서 제목을 개요로 남겨요.

기기에서 처리됨

이 도구는 브라우저 안에서만 실행돼요. 파일은 절대 업로드되지 않으며, 브라우저의 네트워크 탭에서 직접 확인할 수 있어요. 직접 확인해 보세요. 브라우저의 네트워크 탭을 열어 두고 지켜보면, 남은 작업이 있는지 묻는 작은 요청 하나만 보여요. 도구 이름과 해시뿐이고, 파일은 절대 포함되지 않아요.

이 도구가 하는 일

This reads a Markdown file and lays it out as a PDF directly, without going through HTML on the way. Headings, lists, tables, block quotes, links and fenced code blocks all come across, and the headings also become a real PDF outline. Markdown has no pages of its own, so the pagination is created here rather than reproduced from anywhere - the paper size, margins and theme you pick are what decide where the breaks fall.

Use it when the reader has no Markdown reader: a README that has to go into a tender pack, meeting notes an editor wants as an attachment, a specification circulating for comment, or documentation you want on paper with a table of contents that works.

작동 방식

  1. Drop your .md or .markdown files onto this page. Up to 20 at a time, each up to 50 MB.
  2. Pick a theme. Plain sets 11 pt with 1.45 line spacing, Book loosens to 11.5 pt and 1.6 for something read end to end, and Technical tightens to 10 pt and 1.35 for reference material that gets scanned rather than read.
  3. Choose the paper size, orientation and margins. Normal margins are 56 points on every side.
  4. Leave bookmarks from headings on so the finished PDF opens with a working outline, and turn page numbers off if the document already numbers itself.
  5. Under advanced options, decide whether YAML front matter at the top of the file should supply the document title.
  6. Press Convert. Each file becomes its own PDF and the downloads start on their own.

The parser walks Markdown into the document model directly and never renders it to HTML first. That sounds like an implementation detail and is not: a Markdown-to-HTML-to-PDF route escapes the content twice, and every escaping bug in that round trip shows up later as a stray ampersand or a visible line-break tag in somebody's finished document. Going straight to the model means the text you wrote is the text that gets measured.

Headings become the PDF outline, which is the thing that makes a long Markdown document usable as a PDF at all. A forty-page specification without an outline is a scroll bar and nothing else. One hash through six become outline entries at the matching depth, so the structure you already have in the file is the navigation the reader gets, with no extra step and nothing to maintain separately.

GitHub-flavoured extensions are on, so tables, strikethrough, task lists and bare URLs behave the way they do on GitHub rather than being left as literal punctuation. Fenced code blocks are set in Noto Sans Mono at 92 per cent of the body size, on a tinted wash, and a block longer than the remaining space is split across pages with the wash redrawn rather than being pushed whole onto the next sheet. Long code lines are folded, with the continuation indented to match the line it came from and the break preferred at a space so an identifier is not cut in half.

Images referenced by the Markdown are not embedded, and raw HTML blocks are not rendered. A Markdown file points at its pictures by path or by URL rather than containing them, and going out to fetch one would be exactly the outbound request this tool exists not to make. Convert the pictures separately with Images to PDF and join the results with Merge PDF if they need to be in the same document.

The Book theme asks for a serif face, and it is worth knowing what that gets you. With Embed a Unicode font on, which is the default, there is no Noto Serif in the embedded set, so serif borrows the sans faces and what you actually gain is the looser leading and the larger type. Turn embedding off and the text really is set in Times Roman, at the cost of every character outside the WinAnsi range.

이 도구가 할 수 없는 일

  • Images referenced by the Markdown are not embedded. Fetching them would mean an outbound request; convert them with Images to PDF and combine the results instead.
  • Raw HTML inside the Markdown is not rendered. Structure written as Markdown converts; structure written as HTML tags does not.

자주 묻는 질문

어떤 Markdown 문법을 이해하나요?
CommonMark에 GitHub 확장인 표, 취소선, 작업 목록, 그대로 링크가 되는 URL까지 이해해요. 제목, 순서 있는 목록과 없는 목록, 중첩 목록, 인용, 구분선, 인라인 코드, 코드 블록도 모두 처리해요. 파일 맨 위의 YAML 프런트매터는 해당 옵션을 켜면 표로 인쇄되는 대신 문서 제목으로 읽혀요.
제목이 목차가 되나요?
네. 제목으로 북마크 만들기를 켜면 샵 한 개부터 여섯 개까지가 같은 깊이의 PDF 개요 항목이 돼서, 읽는 사람은 파일에 이미 들어 있는 구조로 만든 탐색 창을 얻어요. Markdown에 무언가를 덧붙일 필요도, 손으로 맞춰 둘 필요도 없어요.
Markdown 안의 이미지가 왜 빠졌나요?
Markdown 파일은 그림을 담지 않고 참조만 하는데, 그림을 가져오려면 이 페이지가 사용자를 대신해 요청을 보내야 하기 때문이에요. 여기 있는 모든 도구가 하지 않는 단 한 가지가 그거예요. 텍스트와 표, 목록, 링크, 코드는 모두 변환돼요. 그림이 중요하다면 이미지를 PDF로 변환한 뒤 PDF 병합으로 두 문서를 합치세요.
코드 블록은 어떻게 조판되나요?
Noto Sans Mono로 본문 크기의 92퍼센트, 옅게 칠한 바탕 위에 놓이고, 크기를 재기 전에 탭은 공백 네 칸으로 펼쳐요. 단보다 긴 줄은 잘리지 않고 접히는데, 이어지는 줄은 원래 줄이 시작한 위치에 맞춰 들여쓰고, 접는 자리는 공백을 우선하기 때문에 긴 식별자가 통째로 남아요.
변환하려면 문서를 업로드해야 하나요?
아니요. 파일은 브라우저 안의 웹 워커에서 디코딩되고 해석되고 배치되며, PDF도 거기서 만들어져요. 이 페이지가 가져오는 것은 이 사이트 자체 출처의 Noto 글꼴 하나뿐이고, 브라우저가 그것을 캐시한 뒤에는 연결을 끄고도 변환돼요.

관련 도구