跳到編輯器
mdprint

免費 · 私密 · 無須註冊

把 Markdown 印得漂亮

貼上、輸入或拖入檔案。預覽即時更新。直接列印或下載為 PDF - 一切都在瀏覽器內完成。

100% local No sign-up 18 languages
Markdown 原始檔
預覽

在下方編輯器開始輸入

表格 程式碼高亮 數學公式 (KaTeX) Mermaid 圖表 工作清單 註腳 自動目錄 為列印優化 本地處理 無須註冊 18 種語言 深色模式 表格 程式碼高亮 數學公式 (KaTeX) Mermaid 圖表 工作清單 註腳 自動目錄 為列印優化 本地處理 無須註冊 18 種語言 深色模式

本地處理

Local processing. Your files never leave your device. 不上傳、不經過伺服器,也不追蹤內容。

即時預覽

所見即所得。預覽結果與列印輸出一致。

面向全球

18 種語言。支援由右至左書寫。內建 CJK 字型。載入一次後可離線使用。

運作方式

三個步驟。不必註冊。

開啟編輯器
01

貼上或上傳

直接輸入 Markdown、從剪貼簿貼上,或把 .md 檔案拖到編輯器上。

02

立即預覽

邊寫邊看即時預覽。標題、表格、程式碼、公式、圖表 - 全部即時呈現。

03

列印或下載

點擊列印呼叫瀏覽器對話框,或下載分頁正確的乾淨 PDF。

GitHub Flavored Markdown,加上你真正會用到的擴充功能。

Markdown 能做的一切,都能列印

GFM 表格

對齊欄位、表頭,完整支援 GitHub 風格語法。

程式碼高亮

highlight.js 可自動辨識 190 多種語言。

數學公式 (KaTeX)

行內 $x^2$ 與區塊 $$...$$ 公式,渲染快速。

Mermaid 圖表

流程圖、循序圖、甘特圖、類別圖 - 渲染為清晰 SVG。

工作清單

核取方塊語法,列印效果到位。

註腳

引用式註腳,跨頁也保持完整。

自動目錄

可選的目錄,依你的標題自動產生。

為列印優化的樣式

分頁、表頭重複、清爽排版。

深色編輯器

預設淺色。深夜寫作再切深色。

檔案匯入

.md、.markdown、.txt。拖放或按鈕皆可。

18 種語言

原生介面支援英文、荷蘭文、法文、阿拉伯文、中文等。

零追蹤

我們看不到你的內容。Plausible 只統計頁面瀏覽,僅此而已。

功能

mdprint 所支援的一切,附上範例。

Markdown 解析

完整 CommonMark,加上 GitHub Flavored Markdown。

mdprint 底層使用 markdown-it - 一個以 JavaScript 撰寫、快速且符合規格的 Markdown 解析器。它精確實作 CommonMark,並在其上疊加 GitHub Flavored Markdown。雙波浪號的刪除線、裸 URL 的自動連結、帶語言標籤的圍欄程式碼區塊、豎線語法的表格,全都與 github.com 表現一致。如果你的 Markdown 在 GitHub README 上能呈現,在這裡也能呈現。

表格

GFM 豎線短橫線語法,可對齊。

表格使用標準的豎線與短橫線語法。表頭列、每欄以 --- 分隔的分隔列、然後是資料列。在分隔列的左端、右端或兩端加冒號即可控制對齊::-- 靠左、--: 靠右、:-: 置中。跨頁的長表格會自動在每個列印頁重複表頭。

工作清單

核取方塊語法,列印友善。

未完成寫 - [ ],已完成寫 - [x]。它們在預覽中呈現為實際的核取方塊,在列印時呈現為填實或空心方塊,讓紙本閱讀更通順。工作清單可嵌套於一般項目符號清單中,以便建構層級式待辦事項。

註腳

引用式註,跨頁仍完整。

在文字中以 [^1] 標記註腳,在其他位置以 [^1]: 註腳內容 定義。註腳會被彙總在文件結尾,並附上指回引用位置的反向連結。註腳區使用獨特樣式與較小的字級,如紙本論文中所慣見。

程式碼高亮

透過 highlight.js 支援 190 多種語言,可自動辨識。

圍欄程式碼區塊會自動高亮。在開頭反引號之後寫上語言(```python、```typescript、```rust)以獲得準確的解析,省略時就讓 highlight.js 從內容辨識。單反引號的行內程式碼會獲得淡淡的等寬背景。程式碼區塊在列印時不會在中間斷頁。

數學公式 (KaTeX)

行內與顯示型公式,印刷級排版。

行內公式使用單個美元符號($E = mc^2$)。區塊公式使用獨佔一行的雙美元符號。mdprint 使用 KaTeX 渲染,速度比 MathJax 更快,並產出印刷級品質,匯出 PDF 後依然清晰銳利。所有標準 LaTeX 數學指令都支援:分數、積分、求和、矩陣、希臘字母,以及完整的 AMS-math 符號集。

在編輯器試試看 →

Mermaid 圖表

流程圖、循序圖、甘特圖、類別圖、狀態圖。

在圍欄程式碼區塊上標註語言 mermaid,mdprint 就會把它渲染為清晰的 SVG 圖。graph LR 或 graph TD 的流程圖、參與者之間的循序圖、含日期的甘特圖、含關係的類別圖、狀態機 - Mermaid 支援的所有圖表類型都可使用。SVG 渲染意味著無論列印解析度多高,圖都保持清晰。

自動目錄

依據你的標題結構自動產生。

在文件任何位置插入 ${toc}(或 [[toc]]),即可依據其後的 H2 與 H3 標題自動產生目錄。在預覽中是一組連結,在列印後的 PDF 中是巢狀大綱。對於讀者想跳到特定章節的長文件很實用。

為列印優化的樣式

分頁、重複表頭、乾淨排版。

列印樣式表是專門設計的。程式碼區塊、表格與圖表中間不會斷頁。每個列印頁頂端都會重複表格表頭。頁面本身依你的設定 - A4 或 Letter、直向或橫向、標準/窄/寬邊界。介面元素全部隱藏:沒有工具列、沒有編輯器,只有渲染好的文件。

深色編輯器

預設淺色,需要時切深色。

登陸頁保持淺色,因為長文閱讀在白底上更輕鬆。編輯器最常在天黑後使用,所以它有自己獨立於頁面佈景的淺/深切換。你的偏好會儲存在本機。

檔案匯入

拖放或按鈕。.md、.markdown、.txt。

把 Markdown 檔拖到編輯器任意位置,mdprint 就會載入它。「匯入」按鈕透過檔案選擇器執行同樣的動作。檔案以瀏覽器的 FileReader API 讀取 - 不會上傳任何東西。若你的文件不以 H1 開頭,檔名會作為 PDF 檔名的建議。

多語言介面

18 種語言、支援 RTL、含 CJK 字型。

介面本身翻譯為 18 種語言:英文、荷蘭文、法文、德文、西班牙文、葡萄牙文、簡體中文、繁體中文、俄文、阿拉伯文、越南文、日文、韓文、義大利文、泰文、印尼文、土耳其文與印地文。阿拉伯文會翻轉版面以支援由右至左閱讀。CJK 與印度系字符都有適合的後備字型,確保在各種裝置上都能正確顯示。

如何使用 mdprint

一份實用指南。可從頭讀到尾,也可直接跳到需要的章節。

開始使用

試用 mdprint 最快的方法,是在首頁的編輯器裡開始輸入。它會載入一份涵蓋所有功能的範例文件 - 表格、程式碼、數學、圖表 - 讓你立刻看到完成頁面的樣貌。刪掉範例,輸入你自己的內容,或從你寫作的地方貼過來。

若你的電腦上已經有一份 Markdown 檔,可以用兩種方式載入。第一是從檔案管理員把它拖到編輯器面板上。拖動過程中放置區周圍會出現高亮。放開檔案,編輯器就會被它的內容填滿。第二是點擊工具列上的「匯入」按鈕,從檔案選擇器挑選檔案。兩種方法都在本機讀取檔案 - 不會上傳任何東西。

mdprint 接受 .md、.markdown 與 .txt 檔。.txt 副檔名適用於以 Markdown 撰寫、但被其他工具存成通用副檔名的文件。若你嘗試匯入其他副檔名的檔案,mdprint 會顯示錯誤並保留目前內容不變。

撰寫 Markdown

若你從未寫過 Markdown,規則少到五分鐘就能學會。你寫的是純文字,四個字元承擔大部分工作。行首的 # 代表標題 - 一個 # 是最大的標題,六個 ###### 是最小的。圍繞一個詞放 * 或 _,單層是斜體,雙層是粗體。行首的 - 或 * 代表項目符號。縮排兩個空白以將一個符號巢狀於另一個之下。

程式碼用反引號處理。在短語兩側各放一個反引號會被格式化為 `inline code`。一行只有三個反引號則開啟程式碼區塊,再寫三個反引號即可結束。如果開頭三個反引號之後緊接著語言名(```python、```typescript、```sql),程式碼區塊就會以該語言進行語法高亮。沒有語言提示時,高亮器會從內容嘗試猜測,對常見語言通常都能命中。

連結與圖片都使用方括號加圓括號。連結是 [可見文字](URL)。圖片是同樣的寫法前面加上驚嘆號:![描述圖片的替代文字](圖片 URL)。列印為 PDF 時,指向可公開存取伺服器的圖片 URL 會被取回並嵌入。本機或須驗證的圖片不會渲染 - 如有需要,可把它們以 base64 資料 URL 的形式直接放入編輯器。

表格是 Markdown 裡原始檔看起來繁瑣、但呈現結果整齊的一項。一個表頭列、一個以短橫線組成的分隔列、再加一或多個資料列,全部以豎線分隔。原始檔中的欄不必對齊 - 渲染器會處理間距。在分隔列短橫線的一端或兩端加冒號即可控制對齊::--- 靠左、---: 靠右、:---: 置中。

使用進階功能

數學公式使用包在美元符號內的 TeX 語法。兩端各一個美元符號是行內公式:$a^2 + b^2 = c^2$。獨佔一行的兩個美元符號則給你一個顯示型公式,置中且字級較大。所有你會用到的 LaTeX 數學指令 - \frac、\int、\sum、\sqrt、希臘字母、矩陣、AMS 符號集 - 都可使用,因為 mdprint 使用實作了相同語法的 KaTeX。

圖表使用 Mermaid 語法,寫在以 mermaid 為語言標籤的圍欄程式碼區塊內。最簡單的圖是流程圖:以 graph LR(左到右)或 graph TD(上到下)開頭,然後寫由箭頭連接的節點。Mermaid 也支援循序圖(顯示參與者隨時間的訊息流)、甘特圖(含相依性的專案時程)、類別圖(物件關係)與狀態圖(狀態機)。Mermaid 文件有每種類型的範例。

註腳能讓正文保持易讀,同時附上詳細的引用或補述。在文字中以 [^1] 標記註腳(數字可任意 - 輸出時會重新編號)。在文件其他地方以 [^1]: 註腳內容 定義。mdprint 會在列印文件結尾彙總所有註腳,並加入反向連結,把每條註腳與正文引用位置相連。

若文件很長,在希望出現目錄的位置寫入字面文字 [[toc]]。mdprint 會把它替換為一個巢狀連結列表,涵蓋文件中所有 H2 與 H3。在列印後的 PDF 中,相同的目錄會成為 PDF 閱讀器可使用的導覽大綱。

自訂輸出

從工具列開啟「設定」面板,即可控制 PDF 的產生方式。頁面大小有兩個選項:A4(北美以外的標準)或 Letter(北美的標準)。方向在直向與橫向之間切換 - 橫向適合含寬表格或寬圖表的文件。邊界提供三種預設:「窄」為密集內容騰出更多可用區域、「標準」是慣用折衷、「寬」為列印副本上的手寫註記保留空間。

編輯器有自己獨立於頁面其餘部分的淺色與深色佈景。工具列上的切換按鈕在兩者間切換。無論如何,預覽與列印輸出都保持淺色,因為淺色背景在紙上列印效果最好。

若你經常使用同一組選項,上次的選擇會在本機保留,下次在同一瀏覽器開啟 mdprint 時會自動套用。

列印 vs 下載 PDF

「列印」按鈕會開啟瀏覽器原生列印對話框。從那裡,每個現代作業系統都提供「另存為 PDF」作為目的地 - Chrome、Firefox、Safari 與 Edge 在 macOS、Windows 與 Linux 上都支援。透過列印對話框走,你能獲得最多控制權:可選任何印表機、預覽每一頁、依驅動程式支援時逐頁變更方向、在某些印表機上甚至能切換紙匣或裝訂。

「下載 PDF」按鈕跳過列印對話框,直接在瀏覽器中產生 PDF 並觸發下載。它使用你目前的「設定」(頁面大小、方向、邊界)來格式化輸出。當你已明確知道要什麼、又不需要列印對話框的彈性時,這條路線更快。它的原理是把頁面渲染成一張高解析度圖片,再把這張圖片放進 PDF,因此結果始終與你在螢幕上看到的一致。代價是:由於頁面變成了圖片,這份 PDF 裡的文字無法選取,也無法搜尋。

兩條路線的差別在於最終檔案裡裝的是什麼。透過「列印」按鈕的「另存為 PDF」會把文字保留為文字:可選取、可搜尋,在任何縮放下都清晰,圖表也保持為向量。而「下載 PDF」則是一鍵產生的圖片快照,因此快速且像素級精確,但其中的文字無法選取。當你想要可選取的文字,或在任何縮放下最清晰的結果時,用「另存為 PDF」;當你只想快速得到螢幕內容的精確副本、又不想開啟列印對話框時,用「下載 PDF」。

疑難排解

分頁出現在尷尬處。mdprint 不會在程式碼區塊、表格與圖表中間斷頁,但不會替一般段落猜測。若一個標題落在某頁底部、但內容在下一頁,最簡單的修法是在前後加上幾句話把標題推到合適位置。V1 沒有手動分頁符語法 - 已列入 V2。

PDF 中不顯示圖片。最常見原因是圖片 URL 指向你的本機檔案系統(file://)或不允許跨來源存取的伺服器。請把圖片以資料 URL 直接嵌入 Markdown 原始檔,或上傳到允許公開讀取的圖床。Imgur、GitHub 的使用者內容伺服器以及大多數 CDN 都可以。

公式不渲染。檢查原始檔中正文裡未跳脫的美元符號 - 一個落單的 $ 可能會開啟一個吞掉整段的數學區段。若你需要在正文中放字面美元符號,請跳脫:\$。若語法正確但仍不渲染,那條 LaTeX 指令可能不在 KaTeX 支援清單裡 - KaTeX 文件有完整參考。

圖表一片空白。Mermaid 對語法很嚴格。最常見錯誤是 graph LR 後缺一個空白、節點 ID 含空白(改用駝峰式或底線)、或箭頭指向未定義的節點。開啟瀏覽器的開發者主控台 - 解析失敗時 Mermaid 會輸出明確的錯誤訊息。

表格換行怪異。若表格比頁面寬,mdprint 會縮放以適應。對於非常寬的表格,可在「設定」切換到橫向,或把表格重整為清單。PDF 不像網頁那樣處理水平捲動。

技巧與小撇步

用好鍵盤快捷鍵。Cmd+P(Windows 與 Linux 是 Ctrl+P)開啟列印對話框。Cmd+S(Ctrl+S)觸發「下載 PDF」。瀏覽器自身的快捷鍵 - 尋找(Cmd+F)、重新載入(Cmd+R)、縮放(Cmd+加/減號)- 都照常運作,不會與 mdprint 衝突。

每份文件都以 H1 開頭。首個 H1 會作為建議的 PDF 檔名、無障礙所需的文件標題,以及列印頁頂端最醒目的標題。若你以 H2 或更低層開頭,檔名會退回為「document.pdf」,需要在下載後手動重新命名。

在意隱私時,把圖片嵌入為資料 URL。若你不希望 PDF 閱讀器在開啟檔案時從遠端伺服器抓取圖片,把圖片轉成 base64 資料 URL 直接嵌入。多數作業系統都有內建或專用工具可做此轉換。最終檔案會變大,但完全自包含。

用工作清單做列印用清單。若你要做一份紙本清單 - 行李清單、出貨清單、分步流程 - 就用 - [ ] 這樣的 Markdown 工作清單語法。方框印出來,可用筆勾選。

在技術文件裡把 mermaid 與程式碼結合。常見做法是先展示一個流程圖,再展示實作該流程的實際程式碼。Markdown 讓你在同一份檔案裡兼具兩者,mdprint 會把它們渲染得在紙面上並列整齊。

鍵盤快捷鍵

Cmd+P 或 Ctrl+P - 開啟列印對話框。

Cmd+S 或 Ctrl+S - 下載為 PDF。

編輯器中 Cmd+B 或 Ctrl+B - 將所選文字加粗。

編輯器中 Cmd+I 或 Ctrl+I - 將所選文字設為斜體。

編輯器中 Cmd+/ 或 Ctrl+/ - 切換目前行的註解(Markdown 情境下為 HTML 註解)。

全螢幕時編輯器內按 Esc - 離開全螢幕。

深入了解 Markdown 與列印

什麼是 Markdown?

Markdown 是 John Gruber 在 2004 年提出的一種輕量級純文字排版語法。你怎麼想就怎麼寫 - # 代表標題、** 代表粗體、- 代表項目符號 - 渲染器會把它轉成乾淨的 HTML、PDF 或列印輸出。它成為 GitHub、Reddit、Discord 以及大多數現代開發者工具的預設寫作格式,原因在於它去除了排版的心智負擔:你只管打字,結構自然顯現。

GitHub Flavored Markdown (GFM) 在原始規格之上擴充了表格、工作清單、圍欄程式碼區塊、自動連結與刪除線。如今多數工具都實作了 GFM,並加上幾項常見擴充:註腳、KaTeX 數學、Mermaid 圖表與定義列表。mdprint 全部開箱即用。

比起在文書處理軟體裡寫作,Markdown 在列印場景下有兩項關鍵優勢。第一,原始檔是你擁有的純文字檔 - 沒有專有格式、沒有廠商鎖定,在不同電腦上開啟也不會突然重排。第二,同一份原始檔每次都能產出一致的輸出:同樣的標題給同樣的樣式、同樣的程式碼區塊給同樣的等寬字型、同樣的表格給同樣的邊框。這份一致性正是你在列印筆記、文件、論文或報告時所需。

如何將 Markdown 轉成 PDF

常見做法有三種。第一是像 Pandoc 這種命令列工具 - 功能強,但需要安裝、需要可用的 LaTeX 環境才能達成嚴肅排版,還得試錯多次才能調出滿意輸出。第二是線上轉換器,但你得把檔案上傳到無法控制的伺服器。草稿可以接受,但對機密內容完全不行,且大多數會在第一頁後加浮水印或付費牆。

第三種就是 mdprint 的做法:全部在瀏覽器內處理。把 Markdown 貼上或拖入編輯器,JavaScript 解析器把它轉成 HTML,瀏覽器以面向列印的 CSS 呈現,然後你要嘛呼叫原生列印對話框(每個現代作業系統都支援「另存為 PDF」),要嘛用客戶端函式庫直接產生 PDF。不上傳、不經過伺服器、無須等待。

選擇瀏覽器路徑的三個理由。第一,隱私:涉及人事決定、報稅或合約草稿的文件,不應只為了變成 PDF 就經過別人的伺服器。第二,速度:頁面載入後,轉換即時,你能反覆迭代 - 改個標題、按下列印、再改一次。第三,離線:mdprint 載入過一次後,你可以在飛機上或公司防火牆後正常使用。

Markdown 語法速查

標題:# H1、## H2、### H3,一路到 ###### H6。每份文件僅使用一個 H1 - 它會作為列印輸出的標題,也作為 PDF 下載時的建議檔名。

強調:*斜體* 或 _斜體_,**粗體** 或 __粗體__,~~刪除線~~。需要時可組合 **_粗斜體_**。

清單:無序使用 -、* 或 +;有序使用 1.、2.、3.(數字不必連續 - Markdown 會重新編號)。縮排兩或四個空白以表巢狀。工作清單以 - [ ] 表未完成,- [x] 表已完成。

連結與圖片:[文字](https://example.com) 是連結,![替代文字](image.jpg) 是圖片。引用式連結以 [文字][id] 與另一行 [id]: https://example.com 配對,可讓文章更易讀。

程式碼:行內用反引號包住 `code`,三個反引號加可選語言標籤代表程式碼區塊。在開頭三個反引號後寫上語言(```python、```typescript),語法高亮器才會選用正確的文法。

表格:豎線與短橫線語法。一行寫 | 欄 | 欄 |,下一行寫 |---|---|,再接資料列。對齊標記(:--、--:、:-:)用於控制欄位在列印輸出中的對齊方式。

數學:行內用 $E = mc^2$,區塊用 $$ \int_0^\infty e^{-x} dx = 1 $$。mdprint 使用 KaTeX,渲染快、列印清晰。

圖表:以 mermaid 作為語言標籤的圍欄程式碼區塊,會被渲染為 SVG 圖。流程圖、循序圖、甘特圖、狀態機、類別圖 - 全部支援。

為什麼本地處理重要

每當文件離開你的裝置一次,就增加一份你無法完全稽核的風險。接收端伺服器可能記錄請求內容。邊緣的 TLS 代理可能快取。上傳頁上的第三方分析腳本可能擷取檔名。錯誤監控服務可能抓到包含內容片段的堆疊追蹤。多數時候這些都不會發生 - 但你無從預知哪一次會出問題,事後也無從補救。

本地處理消除整類失敗。mdprint 只需下載一次它所需的 JavaScript,然後在瀏覽器沙盒內執行一切:Markdown 解析器、語法高亮、數學渲染、圖表渲染與 PDF 產生器。你的檔案永不傳輸。我們沒有任何能看到它的伺服器 - 就算我們想看也看不到。

這份隱私保障是結構性的,不是口頭承諾。沒有可能被錯誤設定的上傳端點,沒有可能意外保留草稿的資料庫,也沒有可能被社交工程誘導去查看檔案的客服。永遠不會外洩的,是從未被送出的東西。

mdprint 與其他工具的比較

若你熟悉命令列,並要產出科研或書籍級的輸出,Pandoc 是文件轉換的黃金標準。對於要交付 300 頁、含自訂 LaTeX 範本手稿的作者來說,它是合適工具。但用來列印一份會議筆記或專案 README,就太過頭了。

Typora 與 Obsidian 都是優秀的 Markdown 編輯器,內建 PDF 匯出。若 Markdown 是你每天的主要寫作平台,值得安裝。mdprint 面向的是另一種情境:你有一份檔案要列印或分享一次,又不想為此安裝任何東西。

把 Markdown 轉 PDF 的瀏覽器擴充功能,通常是把內容送往遠端服務來實作。這會把 mdprint 想避免的隱私問題再次帶回來。如果你確實需要在別人的機器上完成轉換,你需要的不是 mdprint - 是一個託管服務。如果你不需要那種服務,就不需要它。

Google Docs、Microsoft Word 與 Pages 都能開啟 Markdown,但渲染不一致,也不保留原始檔。PDF 輸出尚可,但每次開啟都會把你重新鎖回專有編輯器。mdprint 始終把你的原始檔保持為純文字。你的檔案永遠可攜。

FAQ

常見問題

若這裡沒有你的問題,請來信 anton@fokuus.be。

是的。完全免費、無須註冊、無付費牆、無廣告。由 Fokuus 作為公共工具開發並維護。

關於 mdprint

mdprint 是一個免費、隱私優先的 Markdown 轉 PDF 工具。它完全在你的瀏覽器中執行 - 不上傳、不開帳號,也不追蹤內容。

為什麼有這個工具

多數線上 Markdown 轉 PDF 的工具,都是把你的檔案上傳到伺服器。對於公開 README 來說這是合理取捨,對於合約草稿、稅務文件或任何工作中的檔案則完全行不通。mdprint 是那些轉換器的另一種版本,把所有處理都放在本機,讓這個取捨消失。

由誰打造

Fokuus 是位於比利時的小型網頁工作室。mdprint 由 Anton Pycarelle 作為公共工具開發 - 一個我們自己想用的工具,免費提供。聯絡方式:anton@fokuus.be。

如何保持免費

V1 沒有廣告、沒有加購、沒有付費層級。託管幾乎免費(部署在 Netlify 上的靜態檔案),因此沒有什麼要回收。若日後加入付費功能也會是附加的 - 核心工具始終免費。

路線圖

V1 涵蓋了 18 種語言下的完整 Markdown 轉 PDF 流程。V2 計畫包括 HTML 匯出、DOCX 匯出、範本庫與自訂佈景編輯器。開源也列於 V2。

開啟編輯器

不需要帳號、不需要安裝、不需要上傳。往上捲動,開始輸入。

mdprint