如何把 Markdown 轉成 PDF 且不跑版(2026)

The LoveMarkdown TeamPublished

Markdown 寫好了,一匯出 PDF,程式碼換行錯亂、表格被裁掉、段落被切成兩半——你可能遇過。

本篇說明如何在轉 PDF 時保留程式碼、表格、圖片、連結與分頁,並比較免費線上工具、VS Code、Pandoc 三種做法。

為什麼 Markdown 轉 PDF 會跑版?

Markdown 是純文字,PDF 是固定版面。常見問題有四種:

問題 PDF 上的結果 原因
程式碼被裁切 行尾被切掉 沒有分頁控制
表格不完整 右邊的欄不見 頁面寬度不足
字型改變 變成明體等 字型對應缺失
最後空白頁 多一頁空白 結尾換行/邊距

對症下藥,PDF 就會跟預覽一致。

方法一:免費線上轉換(最快)

不想安裝任何軟體時用這個。

  1. 打開 Markdown → PDF 轉換工具
  2. 貼上 Markdown(或上傳 .md)
  3. 選樣式(Classic / Modern / Academic 等)
  4. 點 Download PDF

會完整保留:

  • 標題與段落間距
  • 粗體、斜體、行內程式碼
  • 語法高亮的程式碼區塊
  • 表格、清單、引用
  • 圖片與連結

提示:匯出前先選好樣式,印刷用邊距與標題階層會更合適。

方法二:VS Code(和程式碼放一起時)

  1. 安裝 Markdown PDF(或 Markdown All in One)
  2. 打開 .md
  3. Cmd/Ctrl+Shift+P → Markdown PDF: Export (pdf)
  4. 存到與原始檔同一層

VS Code 預覽接近 GitHub 風格,README 看起來會一致。

方法三:Pandoc(大量/CI)

pandoc README.md -o README.pdf --pdf-engine=xelatex

常用參數:

# 保留程式碼換行
pandoc doc.md -o doc.pdf --wrap=pre --highlight-style=tango

# 頁面大小與邊距
pandoc doc.md -o doc.pdf -V geometry:margin=1in -V papersize:a4

Pandoc 功能強,但需要 LaTeX。偶爾匯出用線上工具更省事。

要保留的 6 個細節

1. 程式碼區塊(尤其長行)

用標明語言的 fence:

```python
def hello():
    print("Hello, PDF!")
```
  • 加上語言標籤才有高亮
  • 單行過長的程式碼盡量折行
  • 必須保留的長行,請用會自動換行/分割區塊的工具

2. 表格

表頭要短。欄太多是 PDF 裁切的主因:

| 格式 | 適合 | 可否編輯 |
|------|------|----------|
| Markdown | 寫作 | 可 |
| PDF | 分享/列印 | 否 |
| DOCX | 審稿 | 可 |

欄太多就拆表,或拿掉非必要欄位。

3. 分頁

Markdown 內可用簡單 HTML 控制:

<div style="page-break-after: always;"></div>

放在大章節前,避免標題孤伶伶落在頁底。

4. 圖片

  • 相對路徑(./images/chart.png)或 HTTPS
  • PNG/JPEG 建議 1–2MB 以內
  • 加上 alt(也對 PDF 無障礙有幫助)

5. 連結

列印時長 URL 很雜,改用描述性文字:

[Markdown 語法指南](/blog/markdown-syntax-guide)

6. 標題層級

只用一個 # 當標題,其餘用 ## / ###。跳級會破壞 PDF 書籤與目次。

匯出前檢查

  • 只有一個 # 標題
  • 程式碼有 fence + 語言
  • 表格欄數適合直式頁面(約 6–8 欄)
  • 預覽裡圖片正常
  • 內文沒有殘留 HTML
  • 預覽就是你想列印的樣子

FAQ

如何免費把 Markdown 轉成 PDF?

貼到線上 Markdown → PDF 工具下載即可。免註冊、無浮水印,全部在瀏覽器完成。

為什麼程式碼在 PDF 裡被切斷?

多半是長行加上沒有分頁處理。用 fence、適度折行,並選不會把區塊切一半的匯出工具。

PDF 可以保留語法高亮嗎?

可以。請使用先高亮再輸出 PDF 的轉換工具(多數線上工具與 VS Code 擴充都支援)。

該轉 PDF 還是 Word?

最終要分享/列印用 PDF;還要給人改用 Word。選格式可參考 Markdown vs HTML vs LaTeX。

Mac / Windows / Linux 步驟一樣嗎?

一樣。用瀏覽器線上轉換,或本地 VS Code / Pandoc。

下一步

  1. 試著匯出:Markdown → PDF
  2. 需要再編輯:Markdown → Word
  3. 學語法:Markdown 語法指南
  4. 速查:Markdown 速查表