自然

制作电子杂志 🌺🥭

闲来无事,想起高中时候爱看的杂志,于是写了个脚本,把网站上的杂志下载下来了,无奈都是分割的图片,一页被分成了20多块,为了阅读方便,便制作了网页版,顺便做成epub格式的电子书

先了解下EPUB的目录结构

随便将手头的一个epub结尾的电子书📚解压,都可以得到下面👇所示的目录结构
image

  • mimetype: 这个文件内容是application/epub+zip, 是用来声明电子书格式的.
  • META-INF: 用来说明特定文件的存放信息, 其中container.xml这个文件是必须的.
  • OEBPS: 用来存放电子书📚中的各种资源, 其中content.opftoc.ncx是必须的.

image

创建通用的模板文件

mimetype里面的内容

application/epub+zip

META-INF/container.xml里面的内容

<?xml version="1.0" encoding="UTF-8"?>
<container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
    <rootfiles>
<rootfile full-path="OEBPS/content.opf" media-type="application/oebps-package+xml"/>    </rootfiles>
</container>

创建OEBPS及其子文件

mkdir OEBPS
cd OEBPS
touch content.opf toc.ncx

content.opf中添加模板代码:

<?xml version="1.0" encoding="UTF-8"?>
<package xmlns="http://www.idpf.org/2007/opf" unique-identifier="BookID" version="2.0">
  <metadata xmlns:dc="http://purl.org/dc/elements/1.1/" 
    xmlns:opf="http://www.idpf.org/2007/opf">
    <dc:title>书名</dc:title>
    <dc:language>语言</dc:language>
    <dc:rights>版权</dc:rights>
    <dc:creator opf:role="aut">作者</dc:creator>
    <dc:publisher>出版者</dc:publisher>
    <dc:identifier id="BookID" opf:scheme="UUID">出版物唯一标识码</dc:identifier>
  </metadata>
  <manifest>
    <item id="ncx" href="toc.ncx" media-type="application/x-dtbncx+xml"/>
    <item id="sample.png" href="sample.png" media-type="image/png"/>
    <item id="page-template.xpgt" href="Styles/page-template.xpgt" media-type="application/vnd.adobe-page-template+xml"/>
    <item id="chap01.xhtml" href=" 01.xhtml" media-type="application/xhtml+xml"/>
    <item id="chap02.xhtml" href=" 02.xhtml" media-type="application/xhtml+xml"/>
    <item id="title_page.xhtml" href="Text/title_page.xhtml" media-type="application/xhtml+xml"/>
  </manifest>
  <spine toc="ncx">
    <itemref idref="title_page.xhtml"/>
    <itemref idref="01.xhtml"/>
    <itemref idref="02.xhtml"/>
  </spine>
</package>

不建议手动修改这些东西, 推荐修改现成的模板

打包, 预览

zip -r book.epub *

打开book.epub
image

👏 怎么样,给个评价呗?