使用 PHP 创建 PDF 和 EPUB 电子书
使用一个名为 ibis-next
的工具可以生成 PDF和 EPUB 电子书。它是用 PHP 编写的,很容易上手,可以完全用 Markdown 写作。
有趣的事实:ibis-next 这个软件包是 ibis 的继承者,ibis 是我以前用来生成 PDF 的工具。但由于 isbs 不再进行,Hi Folks 的成员决定基于ibis创建
ibis-next
,同时添加了一些额外的功能。
安装 ibis-next
首先使用 Composer 安装 ibis-next。
composer global require hi-folks/ibis-next
我通常全局安装,这样我就可以从系统上的任何地方使用它。但你也可以在项目中本地安装。
初始化书籍
安装完 ibis-next
后,你可以使用如下命令在空目录中初始化书籍:
ibis-next init
该命令将生成如下文件和目录:
assets
目录包含用来创建 PDF 和 EPUB 文件的主题(模板)文件。 由于该过程涉及一个将内容临时转换为 HTML 的中间步骤,因此主题文件采用 HTML 和 CSS 格式,以确保输出文件的正确样式。assets/fonts
目录,你可以下载并使用其中的 ttf 格式字体。assets/cover.jpg
这是样本书的封面图片assets/images
目录,其中包含样书中的例图。content
目录,包含 Markdown 文件。你可以编辑其中的文件或者创建新文件。ibis.php
文件,包含ibis-next
配置信息。
content 目录是此书最重要的部分。与本书相关的所有 Markdown 文件都将位于此目录中,ibis-next 将使用这些文件生成 PDF 和 EPUB文件。
我喜欢按以下方式组织我的内容文件:
如你所见,我在文件前添加了数字,以确保它们按正确的顺序处理。这使得维护这本书变得更加容易。
内容
典型的内容文件如下。
---
title: Introduction
---
# Introduction
This is the introduction to the book.
## Chapter 1
Awesome chapter of my book.
如上,你可以用一个标题(# 或 ##)开始写作,然后是文件的内容。如果想自定义每个部分的页眉文本,可以使用 title
frontmatter 为文件指定标题(可选)。
生成 PDF 和 EPUB 文件
准备好内容文件后,你可以使用以下命令分别在轻亮模式和暗黑模式下生成 PDF 文件。
# PDF in light mode
ibis-next pdf
# PDF in dark mode
ibis-next pdf dark
这将在 /export
目录下生成 PDF 文件。
你也可以使用 ibis-next 为电子书创建 EPUB 文件,该格式可以在亚马逊的 Kindle 上阅读。
ibis-next epub
这将在 PDF 文件的同个目录中生成 EPUB 文件。
小结
该软件包自定义,以便在 ibis.php
文件中根据需求进行更改,你可以在其中更改字体、设置封面位置样式、配置书籍示例等。
使用 ibis-next
,可以完成许多高级的事情,比如 aside 区块,本文中没有介绍。