Web阅读器开发系列教程(入门篇)

作者:Sam

前言

最近我在慕课网发布了两门关于Web阅读应用开发的课程,采用Vue全家桶开发。免费课是入门级课程,初步实现了一个阅读器。实战课是进阶课程,实现了一个高性能的互联网阅读应用。两个项目都采用自适应布局,同时支持PC端和移动端,想要系统提升前端技能的同学不要错过。

免费课《快速入门Web阅读器开发》立即学习

免费课DEMO立即体验

实战课《Vue2.5 实战微信读书 媲美原生App的企业级web书城》立即学习

实战课DEMO立即体验

说明

本教程为系列教程,主要目的是向大家分享如何开发一个功能强大的Web阅读器,技术栈是Vue全家桶。

常见的电子书格式

在上一篇手记中,我介绍了阅读应用的常见功能与阅读器的实现原理,没有读过的同学可以点击这里。在开发阅读器之前,我们先要了解常见的电子书格式,如:txt、PDF、ePub和mobi等,下面简单介绍这些格式:

  • txt是纯文件文件,它无法支持多媒体格式,小说类应用中使用较多,但无法满足电子出版物的需求;
  • PDF是非常主流的电子书格式,但是在移动端下排版效果不佳,所以移动阅读很少采用PDF格式;
  • ePub是目前最主流的电子书格式,电子书内容采用html显示,由css控制样式,不论在PC端还是移动端都有非常好的显示效果,不足之处在于文件容量较大,而且解析时需要解压,会消耗性能,可以借助本地缓存技术来缓解这个问题;
  • mobi是亚马逊Kindle的电子书格式,需要在Kindle中阅读。

本教程主要讲解ePub阅读器的开发。

阅读器的开发路径

阅读器开发路径
一个完整的ePub阅读器的开发流程大致如下:

  • 解析:获取图书的基本信息、目录信息、章节信息等
  • 渲染:在界面上展示电子书内容,支持屏幕尺寸自适应
  • 翻页:支持上一页和下一页的翻页操作
  • 字号:支持修改文字的字号大小
  • 字体:支持修改文字的字体,能够支持CSS3的Web字体
  • 主题:支持切换阅读器的背景色和文字颜色
  • 进度:支持动态切换阅读器的显示进度
  • 目录:支持多级目录展示,点击目录快速跳转到指定章节
  • 搜索:支持全文搜索和章节搜索
  • 书签:支持将当前的阅读位置保存为书签,并能回溯
  • 笔记:支持选中一段文本后加入笔记
  • 适配:针对PC端和移动端进行专门的适配处理

上一篇手记为大家粗略展示了阅读器的开发流程,接下来的系列教程我将由浅入深,为大家详细介绍如何开发一个阅读器。

ePub标准

正式开发之前,我们需要了解什么是ePub标准。ePub是Electronic Publication(电子出版物)的缩写,它是IDPF制定的电子出版物标准。

IDPF介绍

  • IDPF是一个国际组织,全名是国际数字出版论坛,官网是www.idpf.org,它的使命是致力于电子出版物的推广,ePub就是该组织制定的标准。
  • IDPF的董事会有14个席位,收入来源是会员单位的会员费,目前IDPF拥有200多家会员单位,年收入100万美元的公司,每年需支付775美元的会费,以此类推,加入IDPF会员就有机会参与董事会席位竞争或参与电子出版物标准的制定等。
  • IDPF的主要工作是制定、完善和推广ePub标准,主要用于解决纸质书的电子化问题,包含分发、管理和加密等等。

资料来源:http://idpf.org/about-us

ePub标准介绍

ePub标准目前已经推出3.0版本,它包含以下几个部分:

  • EPUB Publications:规定了ePub标准的整体规范和基本语义,比如什么是Spine,什么是Manifest。这样做的目的是为了使不同出版社的ePub电子书都按照同一标准生产,以保证不同的阅读器可以正确地解析同一本电子书;
  • EPUB Content Documents:规定了ePub的内容标准,如何采用XHTML、 SVG 和 CSS 展示电子书内容;
  • EPUB Open Container Format:规定了ePub的封装标准,如何将一组文件打包成一个ePub文件;
  • EPUB Media Overlays:规定了文本和音频的同步处理模型,目前大部分ePub电子书中没有涉及该内容。

想要深入研究ePub标准的同学点击这里,官方为我们提供了非常详细的文档。

ePub电子书剖析

下面我们来看看一本ePub电子书的内部结构,测试电子书点击这里下载。

解压

将电子书的后缀名改为zip,之后用解压软件进行解压,可以得到一个文件夹,如下图所示:
ePub电子书解压

container.xml

打开电子书目录,在META-INF目录下有一个container.xml文件,这是电子书的容器文件(Container),阅读器解析ePub电子书就是从这个文件开始的。
ePub电子书的容器文件
ePub标准对Container有非常严格的规定,主要内容如下:

  • ePub电子书根路径下必须存在一个META-INF目录
  • ePub电子书在META-INF目录下必须包含一个名称为container.xml的文件(注意:名称不能更改,否则会导致解析失败)
  • container.xml文件必须不能加密
  • container.xml中必须包含rootfiles标签,rootfiles下必须包含一个或多个rootfile标签,其中必须包含一个full-path属性指向电子书的配置文件,配置文件格式为opf(其实也是xml文件)

希望深入研究Container标准的同学可以点击这里,我们打开测试电子书的container.xml,内容如下:

<?xml version="1.0"?>
<container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
  <rootfiles>
    <rootfile full-path
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值