在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
目录 通过calibre,将markdown和html转成epub、mobi、pdf等格式文档。
缘由事情是这样的:我们公司 掘金量化(跟掘金是 看着gitbook和看云生成的PDF文档,非常完美,然后把从两个站点下载的PDF文档的后缀改成了 感觉很多企业和个人可能也会有同样的需求,所以干脆将
安装calibre
ebook-convert --version 文档导出效果案例使用的是无闻的《Gogs中文文档》,文档地址:https://www.bookstack.cn/books/gogs_zh ,可以访问该地址查看文档导出的实际效果。 截图: 快速体验如果成功安装了calibre,并配置了环境变量,则可以按照下面的方式进行快速体验。(bin目录下是各系统64位的二进制可执行程序,限64位系统)
./converter.exe ../../example/gogs_zh/config.json
./converter ../../example/gogs_zh/config.json
./converter ../../example/gogs_zh/config.json 执行成功之后,在 使用案例
配置文件以json作为配置文件,配置文件的文件名不限制,在使用的时候指定一下配置文件的文件名即可。需要注意的是,json配置文件需要放在项目的根目录下。比如示例项目, json配置示例{ "charset": "utf-8", "cover": "", "date": "2018-01-21", "description": "Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、Windows 以及 ARM 平台。", "footer": "<p style='color:#8E8E8E;font-size:12px;'>本文档使用 <a href='http://www.bookstack.cn' style='text-decoration:none;color:#1abc9c;font-weight:bold;'>书栈(BookStack.CN)</a> 构建 <span style='float:right'>- _PAGENUM_ -</span></p>", "header": "<p style='color:#8E8E8E;font-size:12px;'>_SECTION_</p>", "identifier": "", "language": "zh-CN", "creator": "书栈(BookStack.CN)", "publisher": "书栈(BookStack.CN)", "contributor": "书栈(BookStack.CN)", "title": "Gogs中文文档", "format": ["epub", "mobi", "pdf"], "font_size": "14", "paper_size": "a4", "margin_left": "72", "margin_right": "72", "margin_top": "72", "margin_bottom": "72", "more": [], "toc": [{ "id": 709800000, "link": "statement.html", "pid": 0, "title": "致谢" }, { "id": 539, "link": "539.html", "pid": 538, "title": "5.1 配置文件手册" }, { "id": 545, "link": "545.html", "pid": 543, "title": "4.1 自定义模板" }, { "id": 549, "link": "549.html", "pid": 548, "title": "2.1 注册 Windows 服务" }, { "id": 554, "link": "554.html", "pid": 0, "title": "1. 简介" }, { "id": 555, "link": "555.html", "pid": 554, "title": "1.1 变更日志" }, { "id": 540, "link": "540.html", "pid": 538, "title": "5.2 公告与高阶指南" }, { "id": 547, "link": "547.html", "pid": 543, "title": "4.2 Web 钩子" }, { "id": 548, "link": "548.html", "pid": 0, "title": "2. 下载安装" }, { "id": 556, "link": "556.html", "pid": 554, "title": "1.2 常见问题" }, { "id": 559, "link": "559.html", "pid": 558, "title": "3.1 二进制升级" }, { "id": 546, "link": "546.html", "pid": 543, "title": "4.3 多国语言支持" }, { "id": 550, "link": "550.html", "pid": 548, "title": "2.2 配置与运行" }, { "id": 557, "link": "557.html", "pid": 554, "title": "1.3 故障排查" }, { "id": 558, "link": "558.html", "pid": 0, "title": "3. 版本升级" }, { "id": 560, "link": "560.html", "pid": 558, "title": "3.2 源码升级" }, { "id": 543, "link": "543.html", "pid": 0, "title": "4. 功能介绍" }, { "id": 544, "link": "544.html", "pid": 543, "title": "4.4 授权认证" }, { "id": 551, "link": "551.html", "pid": 548, "title": "2.3 二进制安装" }, { "id": 538, "link": "538.html", "pid": 0, "title": "5. 高级用法" }, { "id": 552, "link": "552.html", "pid": 548, "title": "2.4 包管理安装" }, { "id": 542, "link": "542.html", "pid": 0, "title": "6. 捐赠我们" }, { "id": 553, "link": "553.html", "pid": 548, "title": "2.5 源码安装" }]} json配置项说明
(参照示例的 使用教程bin目录下的是当前程序生成的64位的二进制可执行文件。Windows下使用示例: converter.exe path/to/config.json 执行成功之后,会自动在项目目录下创建个 Go语言使用引入当前包: if Convert, err:= converter.NewConverter("path/to/config.json");err==nil{ Convert.Convert()} 其它语言由于目前没封装PHP、Python等的类和包,所以其它语言要使用的话,就是在项目下生成一个config.json(名字随便自己定义),然后调用各自语言的cmd执行: /path/to/converter /path/to/config.json 原理HTML导出PDF、epub等文档的原理很简单:根据config.json中的内容,生成epub电子书的基本结构,然后将当前目录下的文件压缩并重命名如 ebook-convert content.epub output/book.pdf [options] 这样,你就可以使用自己熟悉的语言封装一个包,并调用calibre导出文档了。 注意事项
精神上支持我虽然我很缺钱...但是得到他人的肯定和认可比什么都重要。如果当前项目帮到了你,请给项目一个star,以鼓励我在开源的路上能走的更好、更远。附自己业余时间搞的一些站点,支持我,可以点击访问一下:
markdown文档如何转成pdf、epub、mobi说实话,这个我没仔细去研究过。思路就是将markdown文档转成HTML(毕竟这样比较好控制显示样式),然后再通过当前工具再转成PDF文档等。网上应该有更好的方法,如果大家找到了,麻烦也分享一下。 |
请发表评论