最近想把自己寫的一個gitbook轉成pdf分享出去,突然發現最新的gitbook版本已經不支持導出PDF了。於是在網上找了好久終於被我發現了三個將gitbook轉換成pdf的方式,現分享給大家。我使用的是mac系統,如果是其他系統大家可以查找相應的方案。
gitbook自帶的npm模塊gitbook
npm gitbook的最新版本是3.2.3,最新更新時間是1年前,官方估計已經放棄這個模塊了。不過還好,這個模塊還能夠使用。 具體步驟如下:
-
安裝npm
通常來說,安裝好nodejs後會自動安裝相應的npm。
brew install nodejs
-
安裝gitbook
npm install gitbook -g npm install gitbook-cli -g
-
安裝calibre
直接到官網下載: https://download.calibre-ebook.com/
安裝好calibre之後,需要將 /Applications/calibre.app/Contents/MacOS/ebook-convert 鏈接到/usr/local/bin/ebook-convert
ln -s /Applications/calibre.app/Contents/MacOS/ebook-convert /usr/local/bin/ebook-convert
-
生成PDF
在所有的一切都準備好之後就可以運行下面的命令生成pdf了。
gitbook pdf
注意,calibre要下載3.*版本,否則在gitbook pdf 的過程中會卡住。別問我是怎麼知道的,我被這個問題坑了好久。
使用vscode的插件Markdown PDF
vscode是一個非常強大的文本編輯工具,我們可以可以使用它的Markdown PDF插件來將markdown來轉換成pdf。
它有一個markdown-it-include的功能,可以將一個markdown文件中引入的其他markdown文件包含進來。
考慮下面的文件結構:
├── [plugins]
│ └── README.md
├── CHANGELOG.md
└── README.md
如果我們新建一個md文件,其內容如下:
README Content
:[Plugins](./plugins/README.md)
:[Changelog](CHANGELOG.md)
導出爲PDF之後,其內容如下:
Content of README.md
Content of plugins/README.md
Content of CHANGELOG.md
這樣就可以通過一個文件來包含多個md文件。當然這樣也有一個缺點就是引入的文件缺少層級概念也無法生成標籤。
使用CommandBox GitBook Exporter
第三種方式就是使用forgebox的GitBook Exporter工具了。
方法如下:
-
安裝CommandBox
brew install commandbox
-
在box中安裝gitbook-exporter
box install gitbook-exporter
-
在gitbook控制頁面臺中,導出你要生成的gitbook的信息:
Advanced->Danger Zone->Export -
導出PDF和html
CommandBox> gitbook export sourcePath=/path/to/ExportFolder
使用上面的命令可以同時導出pdf和html,其優點就是比使用官方gitbook命令導出的文件要小很多,缺點就是pdf中文會出現亂碼(暫時沒有找到解決方法)
好了,三種方法都教給大家了,感覺去試一下吧。
更多教程請參考 flydean的博客