如何把 Markdown 轉成 PDF 且不跑版(2026)
The LoveMarkdown TeamPublished
Markdown 寫好了,一匯出 PDF,程式碼換行錯亂、表格被裁掉、段落被切成兩半——你可能遇過。
本篇說明如何在轉 PDF 時保留程式碼、表格、圖片、連結與分頁,並比較免費線上工具、VS Code、Pandoc 三種做法。
為什麼 Markdown 轉 PDF 會跑版?
Markdown 是純文字,PDF 是固定版面。常見問題有四種:
| 問題 | PDF 上的結果 | 原因 |
|---|---|---|
| 程式碼被裁切 | 行尾被切掉 | 沒有分頁控制 |
| 表格不完整 | 右邊的欄不見 | 頁面寬度不足 |
| 字型改變 | 變成明體等 | 字型對應缺失 |
| 最後空白頁 | 多一頁空白 | 結尾換行/邊距 |
對症下藥,PDF 就會跟預覽一致。
方法一:免費線上轉換(最快)
不想安裝任何軟體時用這個。
- 打開 Markdown → PDF 轉換工具
- 貼上 Markdown(或上傳
.md) - 選樣式(Classic / Modern / Academic 等)
- 點 Download PDF
會完整保留:
- 標題與段落間距
- 粗體、斜體、
行內程式碼 - 語法高亮的程式碼區塊
- 表格、清單、引用
- 圖片與連結
提示:匯出前先選好樣式,印刷用邊距與標題階層會更合適。
方法二:VS Code(和程式碼放一起時)
- 安裝 Markdown PDF(或 Markdown All in One)
- 打開
.md Cmd/Ctrl+Shift+P→ Markdown PDF: Export (pdf)- 存到與原始檔同一層
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。
下一步
- 試著匯出:Markdown → PDF
- 需要再編輯:Markdown → Word
- 學語法:Markdown 語法指南
- 速查:Markdown 速查表