编程

使用 PHP 创建 PDF 和 EPUB 电子书

19 2024-12-24 02:37:00

使用一个名为 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 区块,本文中没有介绍。

 

PHP
下一篇