Gitbook 生成 pdf 中文字体错乱问题解决办法
Gitbook 生成 pdf 中文字体错乱问题解决办法
示例:
下面针对这一问题提供简单的解决办法: 本地命令行生成 pdf 文件. 当然这种方法有一定局限性, 你需要找到托管在 github 对应的源码仓库且转换过程中不出错. (由于水平有限未能解决在线生成的pdf中文字体错乱问题, 见谅. 也就是说网站自动生成的 pdf 依旧字体错乱, 但是本地生成的pdf文件是没有这个问题的 orz... 如果是 gitbook 上的写作者的话可以本地生成 pdf 上传至网盘提供下载)
Gitbook 项目介绍
GitBook 是一个基于 Node.js 的命令行工具,可使用 Github/Git 和 Markdown 来制作精美的电子书,GitBook 并非关于 Git 的教程。
Gitbook 安装(以下环境是在 OS X 中进行的, 其他环境记得替换命令)
- 通过 NPM 安装 Gitbook
$ npm install gitbook-cli -g
- 查看 Gitbook 版本
$ gitbook versions
安装 Calibre
- OS X 需要链接到转换工具
$ sudo ln -s ~/Applications/calibre.app/Contents/MacOS/ebook-convert /usr/bin
Gitbook 本地生成文档
- 下载仓库(以"Mac 开发配置手册"为例)
$ git clone https://github.com/Aaaaaashu/Mac-dev-setup
注意是电子书托管的仓库地址而不是电子书的地址, 有的作者会直接给出, 没有给出的话通过作者 id 在 github 上查找, 注意替换地址. 还有一些没能找到仓库的, 可以去其他网站找一下 pdf.
- 进入文件夹
$ cd Mac-dev-setup
- 生成 HTML 文件(非必要)
$ gitbook serve
默认在当前目录下生成包含 html 网页名为 _book 的文件夹, 并启动端口为4000的预览服务器, 可通过 http://localhost:4000 预览.
- 生成 pdf 文件
$ gitbook pdf
默认在当前目录下生成名为 book.pdf 的文件, 类似的可生成 epub 和 mobi 文件.
这样字体正确的 pdf 文件就生成了, 对比直接从 gitbook 下载的 pdf, 体积变大了.
常见错误
本地命令经常会卡在最后一步, 经常见的如 permission denied, 即没有权限, 记得在前面添加 sudo 或直接启用 admin.
你还可能碰到许多诸如下载失败的错误, 多数情况下是墙引起的, 还请自备翻墙技巧哈.
其他的错误有插件加载失败, 错误信息里有命令提示gitbook install
.
还有就是 svg 转换 png 的错误, 不影响阅读情况下可以找到对应的文件删除对应语句. 如果 svg 图片很多的话, 靠删除不能解决问题. 看了些讨论也没能解决, 如果你有解决办法, 请联系我.
写在最后
网上的一些教程由于时间太早, 有些命令已经舍弃了, 如 gitbook 的安装命令, 添加 pdf 依赖等, 还请以官方文档为准.
本文旨在解决从 gitbook 下载的 pdf 中文字体错乱问题, 更多的 gitbook 使用技巧及如何构建电子书可以参考GitBook 简明教程, 和参阅官方文档或自行 Google. 希望能对你有所帮助.
Gitbook地址 || Gitbook项目地址 || 中文文档
参考: Gitbook 使用入门
Gitbook 生成 pdf 中文字体错乱问题解决办法的更多相关文章
- 文章投稿 latex 生成 pdf的字体Embeded问题解决(转自兵马俑BBS)
此法可以把所有字体转为Embedded,先生成*.ps文件,下载ghostscrip8.51和GSView4.7 安装,用gsview4.7转换*.ps->*.pdf,在gsview中File- ...
- sublime Text3中文字体错位问题解决办法
问题如下: 问题成因: 配置中的默认字体为Consolas,这种字体对中文支持效果不是很好 解决办法: 1.下载 Yahei Consolas Hybrid 字体 2.将下载的Yahei Consol ...
- php导出pdf,dompdf中文字体乱码解决办法(特别是代码迁移引起的乱码)
dompdf\lib\fonts\dompdf_font_family_cache.php记住这个文件里面存放的是字体生成的缓存,迁移时如果覆盖了这个文件会导致乱码而且很难找到出错的地方,相信我... ...
- Open Sans字体兼容问题解决办法[font-face]
参考:http://www.tantengvip.com/2014/11/open-sans/ 1.font-face使用方法 font-face是CSS3中的一个模块,主要是把自定义的Web字体嵌入 ...
- openerp 7.0邮件接收中文附件乱码问题解决办法
openerp 7.0邮件接收中文附件乱码问题解决办法: 修改文件\addons\mail\mail_thread.py #1064 line插入代码: h=email.Header.Header(n ...
- python生成word中文字体
python生成word中文字体 我们今天用python生成word文件,主要是用到了PyRTF包生成rtf文件,由于PyRTF的包中文教程比较少,所以特此记录几篇文章,也希望给大家有一些帮助. 开始 ...
- Linux环境下中文字体乱码处理办法
项目中包含了一项生成JPG图片的功能,该功能需要使用JAVA的Graphics2D动态生成图片中的文字,原来在Windows平台中没有发现问题,但是迁移至Linux平台后发现生成的中文变成了乱码. 百 ...
- php+tcpdf生成pdf: 中文乱码
TCPDF是一个生成PDF的不错的库,可惜,官方对包括中文在内的东亚字体支持不怎么样的.场景:某项目需要根据数据库信息生成pdf格式的发票,考虑采用稳定的tcpdf,虽然还有许多其它选择,但是这个应该 ...
- JasperReport4.6生成PDF中文
Web项目中PDF显示中文 本人无奈使用JasperReport4.6,因为这本书(好像也是唯一的一本国内的介绍JasperReport的书), 选择"文件"→New命令,弹出一个 ...
随机推荐
- 第三章:ES分词简单说明
1. Index_Analyzer为索引时使用的分词器,search_Analyzer为搜索时使用的分词器 这个索引,对应的数据是下图: 数据格式是用%分隔的年份,"index_analyz ...
- Javascript游戏,街头霸王
在线演示 本地下载 街头霸王,有没有记起点什么?我想起了那个有颗大槐树的老院子,还有一台小霸王和一个儿时的伙伴.
- ZH奶酪:PHP遍历目录/文件的3种方法
其实PHP中内建函数scandir()就可以返回目录下全部文件和目录了... ========================== 1.使用$obj = dir($dir)返回目录对象$obj,然后使 ...
- STL与多线程+写时拷贝
http://blog.csdn.net/liuxuejiang158blog/article/details/13251379 STL并不是线程安全的,当多个线程同时读取STL时没什么问题.当多个线 ...
- Java从零开始学二十二(集合Set接口)
一.Set接口的定义 Set接口也是Collection接口的子接口,但是与Collection或List接口不同的是,Set接口中不能加入重复的元素 Set接口的主要方法与Collection是一致 ...
- Hadoop内部的限流机制
前言 文章标题一開始提及到了一个令人感到有些抽象又显得有些非常"大"的词,限流.事实上这个词语在非常多行业都能够用到,比方近期春运,各大主要城市,火车站,地铁站都要做到限流吧,避免 ...
- 算法笔记_172:历届试题 波动数列(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 观察这个数列: 1 3 0 2 -1 1 -2 ... 这个数列中后一项总是比前一项增加2或者减少3. 栋栋对这种数列很好奇,他想知道长度 ...
- URI是什么意思?URI和URL有什么区别?
URI是什么意思?URI和URL有什么区别? 详解! HTTP = Hyper Text Transfer ProtocolURI = Universal Resource IdentifierURL ...
- 用Python读取大文件
通常我们在读取文件的时候,会用到read(), readline(), readlines(). 通常可能会有这样的用法: def test1(): with open("/tmp/test ...
- 〖Linux〗Ubuntu13.10 安装qt开发环境
sudo apt-get install qtcreator libqt4-dev libqt4-dbg libqt4-gui libqt4-sql qt4-dev-tools qt4-doc qt4 ...