如何把 Markdown 文件轉化為 PDF?

每章幾個小節每個小節一個文件,怎麼生成整個的PDF呢?


說個簡單的方法,如果你的markdown(md)文件使用chrome預覽,就比較簡單了。

點列印,目標,選本地另存為pdf,即可。看圖:

這樣保存的PDF非常完美,基本上你在chrome里預覽是什麼格式,保存完就是什麼格式。

-----------------------------------------------------------------------------------------------------------------------------------

2014-04-18更新,可能按這種操作生成的PDF文檔中粗體(中文部分)可能會有問題,個人理解是與字體有關,可以按這樣操作:

先選擇這個,

然後選擇:

這個可能與你電腦裝的PDF軟體會有關係,可能會有不同。

這樣導出的PDF粗體是正常的。


Pandoc - About pandoc

有在線版和linux版,全能的document converter。

如 md --&> pdf:

pandoc README -o example13.pdf

寫完才發現和@Jeky 重了,抱歉抱歉。那我就加一個技術人員用得到的吧。

http://www.reportlab.com/

提供各種語言的介面支持。

------ 中文問題 ------

謝@Tony 提醒,pandoc在轉中文的時候非常頭疼,目前比較成熟的做法是使用LaTex 引擎,手動配置系統內的中文字體進行,具體可以參照 圖靈社區 : 閱讀 : 用Markdown來寫自由書籍 進行配置測試。

誠然,這個方案比較繁瑣和麻煩,幾個包下來500MB空間就沒了。如果你是開發人員,且想自己配一些樣式,還可以選擇reportlab以及基於reportlab的chrisglass/xhtml2pdf ,這樣你就可以簡單的pandoc轉為html,再由html輕鬆地轉為pdf啦,還以自由配置樣式哦。

------ 章節 生成整本書的做法 ------

開源書籍社區的傳統做法也是基於pandoc(利於出版業的排版),著名的例子有 progit/progit ,以及上文提到的 圖靈社區 : 閱讀 : 用Markdown來寫自由書籍 ,已經有寫好的腳本幫助你做這件事啦。


恰好我剛剛做完這個工作,也就來湊一下熱鬧吧:-)

用的是免費的pandoc,關於pandoc的下載和安裝不再提了,只是提醒一下安裝pandoc之後,是需要安裝LaTeX的(如果嫌MacTex太大,可以只安裝basictex),否則不能轉PDF文件。

好了,現在假設你已經安裝好了pandoc和LaTeX,一個命令行就完成了你的任務

$pandoc -N -s --toc --smart --latex-engine=xelatex -V CJKmainfont="PingFang SC" -V mainfont="Monaco" -V geometry:margin=1in 1.md 2.md 3.md ... xx.md -o output.pdf

命令行有兩個最關鍵參數,

--latex-engine=xelatex -V CJKmainfont="PingFang SC"

沒有這個參數,pandoc顯示不了中文,一個是指定LaTeX的渲染引擎,一個指定中文字體,你可以根據自己系統安裝的字體來設置,其他的幾個參數是錦上添花的東西,不是必須,只是我比較喜歡帶書籤的PDF,所以就加上了--toc,也喜歡大綱標題上帶上自動分配的序列號,例如1 1.1 1.1.1……,所以也加上了-N選項。

可以支持多文件轉換到一個PDF中,因為我大部分情況是只轉換一個markdown文件,所以最多支持多少個文件就沒有測試,我試了一下,轉換幾個文件還是可以的,下圖是我轉換兩個文件到一個PDF中:

![兩個MD合成一個PDF](http://ww1.sinaimg.cn/mw690/3e37e59cgw1f43jddav2aj20vg0liq84.jpg)


Mac 下用 Mou 可以直接轉 pdf,還支持自定義 CSS。

以上。


你需要這個:phodal/ebook-boilerplate: A Markdown convert to Ebook html、mobi、epub、pdf、rtf Template

編寫的時候用 Markdown 分章,通過 Pandoc + Latex 來將內容轉為 PDF。

已經用這個模板寫了六七電子書,見 GitHub:

  • Phodal#x27;s Idea實戰指南
  • 一步步搭建物聯網系統
  • GitHub 漫遊指南
  • RePractise
  • Growth: 全棧增長工程師指南
  • Growth: 全棧增長工程師實戰
  • 《我的職業是前端工程師》

簡介

在寫電子書《一步步搭建物聯網系統》的時候就為自己打造了一個生成HTML的生成腳本。

在寫電子書《GitHub 漫遊指南》,發現了 Backbone Fundamentals的構建電子書腳本。於是就複製了一份,然而卻發現不支持生成中文的PDF——沒有Tex模板。然後,就自己添加了一個Tex模板。

最近在整理一些文章、觀點、想法,它就變成了《RePractise》——又一本電子書。

接著,接著,接著,就有了這個代碼庫。

Usage

  1. 運行init.sh

./init.sh

輸入書名和作者

  1. 編譯

編譯全部: epub、mobi、html、pdf、rtf

make all

編譯特定: epub、mobi、html、pdf、rtf

make html

Setup

  1. 基本編譯需要pandoc
  2. PDF要求環境Tex,推薦使用TexLive。
  3. mobi需要kindlegen。

GNU/Linux和Mac OS可以使用

gem install kindlegen


http://johnmacfarlane.net/pandoc/ 應該能滿足你,不過你需要先裝一下LaTeX。

嫌安裝麻煩的話,可以試試md-&>html-&>pdf....


在Mou下按command+P

這樣就可以了!command+Shift+P 在直接導出中選擇為pdf就可以!


你可以用mdcharm,它就有導出pdf的功能,最主要還是可以免費使用


我個人是用 @何世友推薦的Pandoc轉換方法,這種方法在linux下還是很好用的.如果你沒有線下環境,也可以通過在線轉換,線上方式鏈接:Convert Markdown to PDF


剛解決這個問題!!

希望大家能把我的答案頂上去。

=======

嘗試了高票答案們的方法,要麼下載配置各種工具,甚至是一些Linux Only的方式;要麼遇到中文就亂碼,要麼還得註冊收費......

我推薦一個,不是廣告。

我是為知筆記重度用戶,最近也被簡書的閱讀/寫作體驗折服。推薦大家使用為知代替evernote管理自己的信息。

做以上鋪墊,是因為,我剛在為知插件中發現了為知筆記應用中心筆記轉PDF插件。

所以,如果單單是為了markdown轉PDF,使用這個筆記插件能完美解決你的問題。

此外,你還收穫了最適合國人習慣的資料管理工具 為知筆記 !


免費無內購 iOS 應用:iTunes 的 App Store 中的「Evermark」

  1. MD 視圖右上方的羅盤按鈕是預覽。

  2. 預覽視圖下,點分享按鈕:作為 PDF 文檔分享。

請看圖……

(其實 iOS 用為知筆記客戶端 [ iPhone版 | iPad版 ] 寫 MD 筆記也很贊,可惜不能 PDF 輸出)


StackEdit – markdown editor

用過就知道好,如果只是為了把單個 markdown 文件轉換為 PDF,

這個個人感覺最好了,排版中文字體什麼的都無需操心。

當然,如果是寫書什麼的還是搞個自動化的處理吧,參閱之前的

答案。


好幾年過去了,強力推薦一個Win端的MD編輯器 typora http://www.typora.io,目前還是beta版,正式版之後好像要收費,這款編輯器是實時預覽的,md文件可以直接另存為pdf、html,配合其他軟體還可以導出為docx latex rtf epub之類的文件,支持自定義css,表格支持居中靠左靠右對齊,支持自動生成目錄,導出的PDF也帶目錄

這是實時預覽的結果

另存為pdf之後的效果


之前偶爾幾次md轉pdf用的是最高贊chrome預覽列印的方法。但是因為對字體和排版不太滿意就花幾天寫了個web應用:www.mdtr2pdf.com。可以在線轉化markdown文件。排版和字體是Github的風格,而且更主要的是支持中文UTF8編碼。

歡迎大家使用━(*`?′*)ノ亻!


今天發現了一個超簡單的方法,Atom有一個Markdown Preview的插件,Markdown文件下按ctrl+shit+m就可以預覽Markdown,然後右鍵生成的預覽文件可以保存為html文件,再用chrome打開這個html文件,右鍵Print裡面轉換成pdf。


移動端或Mac的話,可以試試Byword。

對比了下輸出效果,預覽及導出PDF完美一致。

原文件(txt)2KB,導出的PDF 47KB。


基本上沒人答到點子上。

題主希望了解多個md文件合併成一個pdf,關鍵點是多合一,估計最好還要自動算章節號和目錄頁碼上下文引用注釋什麼的,而不是單純地轉化pdf-那樣的工具多了去了。

個人的體驗,pandoc+texlive應當足夠用了。具體的想法是把章節md放在一個文件夾中,pandoc先各自轉化,同時搜集章節信息,之後再整合,就生成一個pdf文件了。

文青的解決方案則是單章節列印成pdf格式(chrome, pdf creator, acrobat pro, etc.)然後用acrobat pro 合併多個pdf。優點是無腦,缺點是缺乏整體上下文聯繫,以及需要購買acrobat pro。


Win平台下,目前已經試過比較順手的方法是:安裝Texts[Texts | PDF XeLaTeX Templates]、Pandoc[Pandoc - About pandoc]和Miktex[Home - MiKTeX Project Page],順利實現Markdown轉html、epub、word、pdf、xelatex格式。效果如下:

  • 顯示效果很優秀

  • 支持圖片

  • 支持Latex公式

  • 支持多平台

  • 缺點也有,沒有文本編輯起來順心,總是有些莫名其妙的不爽,比如想往編輯器里粘貼很多文字,結果只貼進去一小部分,比如想往編輯器里貼入代碼結果沒啥反應,比如蛋疼的四種不同方言格式要手動切換,否則可能效果出不來,不一而足。


GitBook


好久沒上知乎了,看了好多回答好像不太好用,為了在公司裡面推廣開發組用md+git(svn)架設文檔協同,而且為了方便同事在Windows下使用,專門研究了一下Atom+markdown-themeable-pdf插件,並成功部署。

關鍵是這款插件還可以定製頁眉、頁腳的信息,還能定製代碼顯示樣式,當然要自己研究一下這個插件了。

定製路徑:

Mac下:

/Users/yourname/.atom/markdown-themeable-pdf/

Windows下:

C:Usersyourname.atommarkdown-themeable-pdf

主要文件

header.js //頁頭信息
footer.js //頁 腳信息
style.css //顯示樣式,代碼樣式可以定製
logo.png //LOGO

原文地址:使用Atom編寫Markdown文檔並轉為pdf

引用原文--------

工作需要經常寫技術文檔,無奈Word插入代碼並不好用,後染上Markdown無法自拔!但又不能要求別人使用Markdown,故目標要將其轉換為國際通用的pdf文檔,本文將介紹如何使用Atom編輯Markdown文檔並將其轉換為pdf。

Atom使用說明

綜合評估基於Windows的編輯器中,Atom表現更優秀,Atom是GitHub推出的一款開源編輯器,其強大的插件系統是其最大的特色,比如我們這裡要用到的MD文檔轉PDF就是基於Atom的插件完成。

Atom並不僅限於作為md文檔的編輯器,它同大多數編輯器一樣,可以作為其它編程語言使用的。

下載安裝

前往Atom官網:Atom 即可下載最新版

Atom的安裝非常簡單,雙擊下載的應用程序即可完成安裝,其應用程序默認安裝在:C:UsersyournameAppDataLocalatom中,而其插件配置目錄在:C:Usersyourname.atom中,每次使用只需要點擊快捷方式即可。

使用Atom

我們為了寫作md文檔,所以只需用Atom打開一個md文檔,或者新建一個md文檔,就可以按照md格式寫作了。使用ctrl+shift+M可以預覽文檔在html中的表現。

安裝插件

根據我們實際需要,僅需安裝md轉pdf的插件(markdown-themeable-pdf)即可,這裡我們推薦一款有趣的插件:activate-power-mode,電腦配置足夠強大的話,可以嘗試顫抖的力量(https://9turn.com/xuan-ku-de-atomcha-jian-activate-power-mode/)。

Atom的插件是可以使用apm命令來進行在線安裝,實際因為一些原因,我們只能使用npm進行安裝,所以我們需要先安裝nodejs

安裝NodeJS

前往NodeJS官網下載:https://nodejs.org/en/

安裝完成之後也是因為一些原因,需要將npm源改為國內淘寶源,方法如下:

npm config set registry http://registry.npm.taobao.org/

安裝md轉pdf的插件

前往GitHub下載該插件的壓縮包:https://github.com/cakebake/markdown-themeable-pdf

將壓縮包解壓至目錄C:Usersyourname.atom

用管理員方式打開Windows的命令行提示符,進入插件目錄

cd C:Usersyourname.atompackagesmarkdown-themeable-pdf-master

輸入npm install,等待安裝完成,用Atom打開md文檔,右擊文檔任意處,選擇Markdown to PDF,等待片刻完成轉換,如下圖:

轉換後的pdf完美表現


推薦閱讀:

關於產品經理需要做哪些圖和哪些文檔,做這些圖片和文檔的魚骨流程是什麼樣的?如果有對於模版或例子就更好
Macbook上如何在A3紙上印兩張A4紙的內容?
長篇寫作用什麼文檔格式比較實用?
對於個人來說,如何有效地管理電子文檔?
如何用word實現內容的批量刪除?

TAG:PDF | 文檔 | 中文排版 | Markdown |