最近想把自己写的一个gitbook转成pdf分享出去,突然发现最新的gitbook版本已经不支持导出PDF了。于是在网上找了好久终于被我发现了三个将gitbook转换成pdf的方式,现分享给大家。我使用的是mac系统,如果是其他系统大家可以查找相应的方案。

gitbook自带的npm模块gitbook

npm gitbook的最新版本是3.2.3,最新更新时间是1年前,官方估计已经放弃这个模块了。不过还好,这个模块还能够使用。 具体步骤如下:

  1. 安装npm

    通常来说,安装好nodejs后会自动安装相应的npm。

    brew install nodejs
  2. 安装gitbook

    npm install gitbook -g
    npm install gitbook-cli -g
  3. 安装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
  4. 生成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工具了。

方法如下:

  1. 安装CommandBox

    brew install commandbox
  2. 在box中安装gitbook-exporter

    box install gitbook-exporter
  3. 在gitbook控制页面台中,导出你要生成的gitbook的信息:

    Advanced->Danger Zone->Export

  4. 导出PDF和html

    CommandBox> gitbook export sourcePath=/path/to/ExportFolder

使用上面的命令可以同时导出pdf和html,其优点就是比使用官方gitbook命令导出的文件要小很多,缺点就是pdf中文会出现乱码(暂时没有找到解决方法)

好了,三种方法都教给大家了,感觉去试一下吧。

更多教程请参考 flydean的博客

新版gitbook导出pdf的更多相关文章

  1. .Net导出pdf文件,C#实现pdf导出

    最近碰见个需求需要实现导出pdf文件,上网查了下代码资料总结了以下代码.可以成功的实现导出pdf文件. 在编码前需要在网上下载个itextsharp.dll,此程序集是必备的.楼主下载的是5.0版本, ...

  2. JS导出PDF插件(支持中文、图片使用路径)

    在WEB上想做一个导出PDF的功能,发现jsPDF比较多人推荐,遗憾的是不支持中文,最后找到pdfmake,很好地解决了此问题.它的效果可以先到http://pdfmake.org/playgroun ...

  3. ITextSharp导出PDF表格和图片(C#)

    文章主要介绍使用ITextSharp导出PDF表格和图片的简单操作说明,以下为ITextSharp.dll下载链接 分享链接:http://pan.baidu.com/s/1nuc6glj 密码:3g ...

  4. JAVA导出pdf实例

    一.直接导出成PDF   Java代码 1. import java.io.FileNotFoundException; 2. import java.io.FileOutputStream; 3.  ...

  5. 利用ITextSharp导出PDF文件

    最近项目中需要到处PDF文件,最后上网搜索了一下,发现ITextSharp比较好用,所以做了一个例子: public string ExportPDF() { //ITextSharp Usage / ...

  6. iText导出pdf、word、图片

    一.前言 在企业的信息系统中,报表处理一直占比较重要的作用,本文将介绍一种生成PDF报表的Java组件--iText.通过在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超级连接显示或 ...

  7. Itext导出PDF,word,图片案例

    iText导出pdf.word.图片 一.前言 在企业的信息系统中,报表处理一直占比较重要的作用,本文将介绍一种生成PDF报表的Java组件--iText.通过在服务器端使用Jsp或JavaBean生 ...

  8. Ireport 报表导出 Poi + ireport 导出pdf, word ,excel ,htm

    Ireport 报表导出 Poi + ireport 导出pdf, doc ,excel ,html 格式 下面是报表导出工具类reportExportUtils 需要导出以上格式的报表 只需要调用本 ...

  9. Spring Boot 系列教程18-itext导出pdf下载

    Java操作pdf框架 iText是一个能够快速产生PDF文件的java类库.iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的.它的类库尤其与java Servlet有很好 ...

随机推荐

  1. HDU1087:Super Jumping! Jumping! Jumping!(DP水题)

    Super Jumping! Jumping! Jumping! Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  2. HDU1158:Employment Planning(暴力DP)

    Employment Planning Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Othe ...

  3. CSS 基础(二)

    本节内容: 文本 字体 链接 列表 表格 一.文本 文本颜色 颜色属性被用来设置文字的颜色. 三种方式: 十六进制值 - 如: #FF0000 一个RGB值 - 如: RGB(255,0,0) 颜色的 ...

  4. C++primer(第五版)Sales_item.h头文件

    C++primer(第五版)1.51练习章节需要有一个Sales_item类,但是给的网站找不到,直接复制下面就好咯: #ifndef SALESITEM_H #define SALESITEM_H ...

  5. 关于android中数据库的创建以及基础的增删改查的相应操作

    这里主要是掌握一些基本的相应的知识,具体的是阿金是等到明天在进行. 相应的知识点如下: 对于数据库中的一些常识.SQLite 没有服务器进程,它通过文件保存数据,该文件是跨平台的,可以放在其他平台中使 ...

  6. 躁!DJ 风格 Java 桌面音乐播放器

    本文适合有 Java 基础知识的人群,跟着本文可学习和运行 Java 版桌面 DJ 音乐播放器. 本文作者:HelloGitHub-秦人 HelloGitHub 推出的<讲解开源项目>系列 ...

  7. Go gRPC进阶-TLS认证+自定义方法认证(七)

    前言 前面篇章的gRPC都是明文传输的,容易被篡改数据.本章将介绍如何为gRPC添加安全机制,包括TLS证书认证和Token认证. TLS证书认证 什么是TLS TLS(Transport Layer ...

  8. AJ学IOS(54)多线程网络之NSOperation重要知识

    AJ分享,必须精品 一:队列的类型与队列添加任务 1: 主队列 [NSOperationQueue mainQueue] 添加到”主队列”中的操作,都会放到主线程中执行. 2:非主队列 [[NSOpe ...

  9. AJ学IOS(41)UI之核心动画 两行代码搞定3D转场

    AJ分享,必须精品 效果: 代码: 其实代码很少,苹果都给封装好了 // 1.创建核心动画 CATransition *ca = [CATransition animation]; // 1.1动画过 ...

  10. ASE课程总结 by 冯晓云

    开始的开始,采访往届ASE班的blog:http://www.cnblogs.com/legs/p/4894362.html 和北航软工M1检查:http://www.cnblogs.com/legs ...