含表格的Markdown轉PDF:印出來一樣清楚好讀

作者 pdftomd.tools 團隊 · 更新於 · 約 6 分鐘閱讀

想把含表格的Markdown轉PDF又不讓表格跑版,就寫單純的 GFM 表格,寬度控制在頁面內,再用一個絕不會把一列從中間切開的轉譯器匯出,例如我們的 MD轉PDF 工具。匯出後打開 PDF 確認三件事:每一欄都看得到,換頁處的每一列都完整,儲存格裡的文字可以選取、可以搜尋。

插圖:兩張 A4 頁面上的一份長表格,最上方是標題列,每頁的資料列都完整

簡單回答:GFM 表格 + 不會切斷資料列的轉譯器

Markdown 表格是 GitHub Flavored Markdown 的擴充語法:一列標題、一列分隔線,再加上幾列資料,用直線符號隔開。像樣的匯出工具都看得懂。真正的差別出現在表格碰到頁面邊緣的時候:不是右邊(欄太多),就是下面(列太多)。

印出來的表格好不好讀,取決於三件事:表格相對於頁面有多寬、換頁時發生什麼事,以及輸出的是不是真正的文字。下面一項一項說明,數據來自我們自己的匯出器,在 2026 年 10 月 18 日實測。

螢幕截圖:在我們的編輯器裡準備含表格的Markdown轉PDF,左邊是 Markdown 原始碼,右邊是轉譯後的表格
螢幕截圖:編輯器中含表格的 Markdown。PDF 和即時預覽用的是同一套版面。

怎麼寫出好列印的表格

Markdown表格轉PDF會出狀況,大多是原始檔案就埋下的。養成幾個習慣,就能避開大部分問題:

  • 儲存格要短。 長的說明移到表格下方的段落,儲存格裡只放一個簡短的關鍵字。
  • 數字要對齊。 分隔線寫成 ---: 就會靠右對齊,印在紙上一眼就能比較數字。
  • 一定要有標題列。 GFM 規定一定要有,而且表格延續到第二頁時,讀者找的就是這一列。
  • 避免沒有空格的長字串。 網址和檔案路徑沒辦法在空格處換行,會把整欄撐寬。把它縮短,或移到表格下方做成註腳式清單。
  • 儲存格裡的直線符號要跳脫,寫成 \|,不然那一列會多出一欄。
| Task           | Owner | Status    |
| :------------- | :---- | --------: |
| Draft the brief | Dana  | Done      |
| Review tables  | Lee   | In review |
| Export the PDF | Sam   | Next      |
好列印的表格:儲存格簡短、有標題列、有一欄對齊。

匯出前,先用接近列印的寬度看一下表格。在我們的匯出器裡,A4 內文寬度大約是 680 個 CSS 像素。如果在窄的預覽裡就已經要左右捲動,印到紙上一定會很擠。

寬表格:A4 放不下所有欄位時怎麼辦

插圖:一份寬表格超出直式頁面,旁邊是調整後所有欄位都看得到的同一份表格

寬表格是 PDF 匯出最常默默出錯的地方。我們剛開始為這篇文章做測試時,用自己的工具匯出一份 9 欄的表格,9 個標題儲存格只有 5 個完整落在頁面內,最後一欄完全看不到,其餘部分都跑到右邊界外。我們當天就修好了匯出器。現在會超出頁面的表格會讓儲存格文字自動換行來符合寬度,重新測試時 9 欄全部都在頁面內,沒有文字超出右邊界。

螢幕截圖:用我們的工具匯出的一頁 PDF,九欄表格已調整成頁面寬度
實際匯出:修正後的九欄測試表格。窄的標題儲存格會把單字拆開,這是符合寬度的代價。

調整寬度總比少掉欄位好,但不算好看:太窄的儲存格會把單字拆開。PDF 裡的寬表格還有四種更好的做法,建議照這個順序試:

  1. 刪除或合併欄位,拿掉讀者在紙本上用不到的欄。
  2. 拆成兩份表格,兩份共用一個關鍵欄位,例如編號或名稱。
  3. 欄列互換,讓很多欄變成列。
  4. 橫式列印。 我們的匯出器只產生直式 A4。以 Chromium 為基礎的匯出工具支援 @page { size: A4 landscape; } 這類 CSS 規則(MDN:size)。

跨好幾頁的長表格

長表格跨頁會有兩種壞法:一列被切開,上半部在這一頁、下半部在下一頁;或是第二頁沒有標題列,讀者搞不清楚哪一欄是什麼。只要表格超過一頁,含表格的Markdown轉PDF時這兩點都很重要。我們用一份 60 列、每列折成兩行文字的表格做了測試。

我們的測試:一份 60 列的表格列印成 A4(pdftomd.tools 團隊,2026 年 10 月 18 日)
匯出工具頁數被切開的列有標題列的頁面
pdftomd.tools MD轉PDF404 頁中 1 頁
Chrome 列印為 PDF(Chrome 155.0.8059.84)303 頁中 3 頁
Chrome 測試用的是 14px 字級和不同的邊界,所以頁數不能直接比較。
螢幕截圖:用我們的工具匯出的長表格前兩頁,每頁的資料列都完整
實際匯出:第 1 頁和第 2 頁。每一列都在換頁處乾淨結束,但第 2 頁開頭沒有標題列。

我們的匯出器會讓每一列保持完整,但不會在後面的頁面重複標題列。Chrome 兩件事都做到了。CSS 2.1 規格允許這麼做,但沒有強制要求:

“列印用的使用者代理程式可以在表格所跨的每一頁重複標題列。”
W3C, CSS 2.1,第 17.2 節(譯文)

如果現在用我們的工具就需要每頁都有標題列,可以把長表格切成一頁一段,自己在每段開頭補上標題列。在以 HTML 為基礎的匯出工具裡,tr { break-inside: avoid; }(MDN)會請瀏覽器不要切斷資料列。

Markdown表格轉PDF:瀏覽器工具 vs VS Code vs Pandoc

三種做法都能把含表格的Markdown轉PDF,差別在於安裝的麻煩程度,以及能調整到多細。

三種匯出方式比較(依據各自的說明文件和我們的測試)
做法轉譯方式表格實際表現
我們的瀏覽器工具在瀏覽器裡排版,用 pdf-lib 寫入文字資料列完整;標題列不重複;寬表格自動調整
VS Code + Markdown PDF 擴充功能透過 Chrome、Edge 或 Chromium 列印支援自訂樣式表和橫式設定
Pandoc預設經由 LaTeX 轉換使用 longtable 環境,表格可以跨好幾頁

VS Code 的部分,Markdown PDF 擴充功能 的說明文件列出用來自訂 CSS 的 markdown-pdf.styles 設定,以及直式、橫式選項。它用 Chromium 瀏覽器列印,跟上表 Chrome 那一列是同一個引擎;不過擴充功能本身我們沒有測過。

Pandoc 的部分,Pandoc 使用手冊 提到 LaTeX 輸出預設使用 longtable,表格可以跨過換頁繼續。手冊也說,如果直線表格裡有一列比欄寬還長,各欄的相對寬度會依分隔線上的連字號數量來分配。換句話說,不用 HTML 也能把某一欄調寬。

pandoc report.md -o report.pdf
Pandoc 預設的 PDF 流程(需要先安裝 LaTeX 引擎)。

檢查 PDF:文字可以選取,儲存格可以搜尋

插圖:一頁含表格的 PDF,其中一列以選取文字的方式反白,一個放大鏡停在某個儲存格上

含表格的Markdown轉PDF,最後要檢查的是文字層。儲存格必須是真正的文字,匯出表格才有意義。有些匯出工具,包括我們工具的備用模式,會把每一頁存成圖片放進 PDF:看起來沒問題,卻不能搜尋、不能複製,螢幕閱讀器也讀不出來。檢查只要十秒:打開 PDF,按 Ctrl+F(或 Cmd+F),搜尋一個只出現在某個儲存格的詞,再選取一列貼上看看。

我們的匯出器寫入的是真正的文字,並內嵌字型子集。在來回測試中,我們把四份表格列印成 PDF,再用我們的 PDF轉Markdown 工具 轉回來,17 列裡有 17 列和原始檔完全相同,包括一個跳脫的直線符號和靠右對齊的數字。反方向的做法,請看我們的 PDF表格轉Markdown 教學。

資料來源

  1. GitHub Flavored Markdown Spec, 4.10 Tables (extension) — GitHub, 2019
  2. CSS 2.1 Specification, 17 Tables — W3C, 2011
  3. break-inside — MDN Web Docs
  4. size (@page descriptor) — MDN Web Docs
  5. Pandoc User’s Guide — pandoc.org
  6. Markdown PDF (VS Code extension) — yzane, Visual Studio Marketplace

常見問題

含表格的Markdown要怎麼轉成PDF?

用直線符號和標題列寫 GFM 表格,寬度控制在頁面內,再用不會切斷資料列的工具匯出。匯出後在 PDF 裡檢查有沒有被切掉的欄、被切開的列,以及文字能不能選取。

為什麼 PDF 裡表格的欄位被切掉了?

表格比可列印範圍還寬,匯出工具又沒有把它縮小。可以刪欄或拆表、欄列互換,或改成橫式列印。我們的匯出器現在會讓寬表格的文字換行,符合頁面寬度。

標題列會在每一頁重複嗎?

要看匯出工具。在我們的測試中,Chrome 列印為 PDF 時每頁都重複標題列;我們的匯出器只在第一頁顯示,所以讀者需要的話,請把長表格拆開。

可以橫式列印 Markdown 表格嗎?

我們的匯出器不行,它只產生直式 A4。以 Chromium 為基礎的工具可以在樣式表裡寫 @page { size: A4 landscape; },VS Code 的 Markdown PDF 擴充功能也有方向設定。

PDF 裡的表格文字可以搜尋嗎?

用我們的匯出器可以:儲存格是內嵌字型的真正文字。有些工具存的是頁面圖片,搜尋一個儲存格裡的詞就能確認。

把 PDF 再轉回 Markdown,跨頁的表格會自動合併嗎?

不會。轉回來會是每頁一份表格;刪掉重複的標題列和分隔線就能合併。做法請看我們的 表格教學。