1. 产品
  2.   电子书
  3.   GO
  4.   Go-EPUB
 
  

免费 Go 库,用于 EPUB 文档创建

开源 Go 库,用于创建 EPUB 文件。它支持添加 CSS、图像和字体。

Go-EPUB 是一个非常有用的开源 Go 库,使软件开发者能够轻松地在自己的 Go 应用程序中创建 EPUB 文件。该库文档非常完善,所有错误信息都一目了然。库中包含了处理媒体文件的非常实用的函数,例如从 URL 获取媒体、从本地 FR 获取媒体或从 RFC 2397 编码方案获取媒体。

Go-EPUB 库使用非常简便,并且包含了处理 EPUB 文档的多个重要功能,例如创建有效的 EPUB 3.0 文件、向 EPUB 文件添加图片、支持自定义 CSS、在 EPUB 文件中添加视频、添加字体,并使用 EPUB 2.0 目录以实现最大兼容性。

Go-EPUB 库支持 EPUBCheck 工具,允许用户检查 EPUB 是否存在验证错误。如果在本地安装了 EPUBCheck,它将在 Go 测试时一起运行。使用 EPUBCheck 时,请确保系统已安装 Java。如果用户不想在本地安装 EPUBCheck,也可以手动验证 EPUB 文档。

Previous Next

开始使用 Go-EPUB

要在系统上安装 Go-EPUB 库,请运行以下命令。

通过 GitHub 安装 PDF

 go get https://github.com/iditectweb/pdf.git

您也可以手动安装;直接从 GitHub 仓库下载最新发布文件。

使用 Go API 生成 EPUB 文件

开源的 Go-EPUB 库提供了完整的功能,只需几行 Go 命令即可在自己的 Go 应用程序中创建 EPUB 文档。该库提供了多个与文档创建相关的重要特性,例如设置作者、向文档添加新章节、在文档中插入图片、应用文本格式和样式、添加自定义字体等。

通过 Go 库创建新的 EPUB 文件

// Create a new EPUB
e := epub.NewEpub("My title")

// Set the author
e.SetAuthor("Hingle McCringleberry")

// Add a section
section1Body := `

第1节

这是一段文字。

` e.AddSection(section1Body, "Section 1", "", "") // Write the EPUB err = e.Write("My EPUB.epub") if err != nil { // handle error }

通过 Go API 向 EPUB 文件添加图片

开源的 Go-EPUB 库允许程序员在 Go 应用程序中向 EPUB 文档添加图像。该库提供了多种在 EPUB 文件中插入图像的方法,例如使用 URL、本地图像文件的完整路径或嵌入的数据 URL。无论哪种方式,图像文件都会被检索并存储在 EPUB 文档中。存储图像文件时将使用内部文件名,且该文件名在所有图像文件中必须唯一。

如何通过 Go API 向 EPUB 文件添加图片

  e := epub.NewEpub("My title")

// Add an image from a local file
img1Path, err := e.AddImage("testdata/gophercolor16x16.png", "go-gopher.png")
if err != nil {
	log.Fatal(err)
}

// Add an image from a URL. The filename is optional
img2Path, err := e.AddImage("https://golang.org/doc/gopher/gophercolor16x16.png", "")
if err != nil {
	log.Fatal(err)
}

fmt.Println(img1Path)
fmt.Println(img2Path)

通过 Go API 向 EPUB 文件添加 CSS 与字体

Go-EPUB 库为软件开发者提供了在 EPUB 文档中添加自定义 CSS 和所选字体的能力。与图像类似,该库允许使用 URL、本地文件路径或嵌入的数据 URL 将 CSS 或字体插入 EPUB 文件。请记住,存储字体文件时将使用内部文件名。

使用 Go API 为 EPUB 文档添加 CSS

// Add CSS
css1Path, err := e.AddCSS("testdata/cover.css", "epub.css")
if err != nil {
	log.Fatal(err)
}

// The filename is optional
css2Path, err := e.AddCSS("testdata/cover.css", "")
if err != nil {
	log.Fatal(err)
}

// Use the CSS in a section
sectionBody := `    

第1节

这是一段文字。

` e.AddSection(sectionBody, "Section 1", "", css1Path) fmt.Println(css1Path) fmt.Println(css2Path)
 中国人