应该说 epub只是html文件,通过第三方压缩软件压缩而成。因此可以通过第三方软件解压。

而mobi文件是根据简单的压缩原理(见上篇文章)为了和mobi格式文件比较,才有此篇内容。

闲话少叙,直接上代码:

(function handleFile(f) {  //网页文件中标签file 打开的文件。
var new_zip= new JSZip(); //创建 jszip 实例
var entry=null;
var showflag=true;
    new_zip.loadAsync(f).then(function(zip) { //f是file标签打开的文件即:epub图书文件。
        zip.forEach(function (relativePath, zipEntry) {
                 if(zipEntry.name.indexOf(".jp")>0 && showflag){
                  entry=zip.file(zipEntry.name).async("base64"); //参数"base64"很重要,否则显示不了封面
                   showflag=false;
                   if(entry) entry.then(function(data){
                       data='<img src="data:image;base64,'+data+'" width="100%" height="100%" >';
                       $(".cover").html(data); //显示封面图片(可能有很多图片,只选一张作为封面)
                  });
              }
              else    if(zipEntry.name.indexOf("htm")>0) { //epub 图书有用“xhtml、html、htm”为扩展名的。
                    entry=zip.file(zipEntry.name).async("string");
                    if(entry) entry.then(function(text){
                        text=text.split("<body")[1];
                     text=text.split("</body>")[0];
                    text=text.replace(/<\/p>/gi,"\n");
                    text =text.replace(/<[^>]*>|/g,"");
                    text=text.replace(/\n\n\n/g,"\n");
                    text=text.replace(/\n\n/g,"\n");
                     htmlText.push(textToHtml(text));//存放全部章节内容
                    });
                 }
        });
    }, function (e) {
         return e.message
    });
})(f);

比较mobi文件,解压后得到的文件和图片都是一样的,这里是引用jszip进行解压。

以上代码在360浏览器和火狐浏览器测试通过。苹果浏览器不支持。

测试效果:

测试图书为1600本英文图书(10年前网上就有了,内容还算完整,但许多没有目录...),但多数都能通过示例代码打开。

跟以前文章一样贴上效果图:

管理博客

epub文件格式揭秘相关推荐

  1. 【文件格式探究】EP.1 对ePub文件格式的初探

    这是"文件格式探究"专题的第 1 期--初探 "ePub" 文件格式.这个专题将会给各位读者呈现笔者探索各种文件格式的过程,具体则是文件的内容是如何呈现出来的. ...

  2. epub是什么文件?epub文件怎么打开?

    EPUB 属于一种可以"自动重新编排"的内容:也就是文字内容可以根据阅读设备的特性,以最适于阅读的方式显示. EPUB 解决了 PDF 和开发人员友好性有关的所有瑕疵.一个 EPU ...

  3. epub直接获取书名及书封面

    epub直接获取书名及书封面 完整的Demo下载GitHub 里面有详细介绍如何使用 一.场景说明 某些场景下我们需要直接获取epub类型书籍的封面及书名,网络上很多文章介绍的都是通过Slf4j等开源 ...

  4. 使用 EPUB 制作数字图书 基于 XML 的开放式 eBook 格式

    /Page1 简介:  是否需要分发文档.创建电子图书或者把喜欢的博客文章存档?EPUB 是一种开放式的数字图书规范,以常用的技术如 XML.CSS 和 XHTML 为基础,EPUB 文件可在便携式的 ...

  5. 使用 EPUB 制作数字图书(转发)

    http://www.ibm.com/developerworks/cn/xml/tutorials/x-epubtut/index.html 使用 EPUB 制作数字图书 基于 XML 的开放式 e ...

  6. 阅读软件汇-EPUB专版

    阅读软件汇-EPUB专版 随着科学技术的不断发展,我们已经进入了信息时代,时代发展的速度在加快,人们的生活节奏也在不断加快,为此许多传统的事物已经无法满足时代的需求,需要将一些现代技术融入其中.传统的 ...

  7. epub图书_使用EPUB构建数字图书

    epub图书 在你开始前 本教程将指导您创建EPUB格式的电子书. EPUB是一种基于XML的,对开发人员友好的格式,它已成为数字图书的事实上的标准. 但是EPUB不仅适合书籍:有了它,您可以: 捆绑 ...

  8. Spire.Doc功能演示:在Java中将Word转换为EPUB

    Spire.Doc for Java 是一款专业的Java Word组件,开发人员使用它可以轻松地将Word文档创建.读取.编辑.转换和打印等功能集成到自己的Java应用程序中. EPUB(电子出版物 ...

  9. Epub电子书阅读器功能技术预研

    Epub格式演变及其文件结构: https://vernlium.github.io/2015/06/10/epub%E6%A0%BC%E5%BC%8F%E8%A7%A3%E6%9E%90/ 如何构建 ...

最新文章

  1. bat批处理文件启动Eclipse和ivy本地仓库的配置
  2. mysql默认无密码的问题
  3. [Database] 数据库范式理论
  4. Monte carlo
  5. java中多线程的创建方式一:
  6. 简单的Java服务器和客户端的通信
  7. @Transactiona注解的使用
  8. Python基础手册
  9. html语言中的字体代码,html中让字体变红的代码
  10. VMware虚拟机XP系统安装图文教程
  11. 第五次打卡 模型融合
  12. java.util.concurrent 同步器框架详解
  13. 正则表达式匹配分析工具 C#编写
  14. 芜湖市市一中2021年高考成绩查询,2021年芜湖各高中录取分数线预测
  15. 从零开始的iOS开发:10 | 如何构建一个APP
  16. developer.biao.daily.20140628
  17. 几家大厂求职与面试(一):Java必备,不看就是遗憾
  18. 微信小程序3-模板与配置
  19. The 2020 ICPC Asia Macau Regional Contest
  20. 解决VUE [WDS] DISCONNECTED 错误

热门文章

  1. 解决macOS无法在线升级更新的问题
  2. 三维人脸_无法打开gl\glaux.h头文件及无法生成 SAFESEH 映像的解决方法
  3. 阿里云中间件是什么,有哪些产品
  4. 【游戏开发】2D RPG游戏
  5. PEST分析顺丰服务需求_快递行业宏观环境分析
  6. android天气预报sdk,Android手机集成天气预报功能方案:全国天气预报API调用
  7. 败家女提供QQ伤感日志_喜欢1个人听着忧伤的歌
  8. 最新计算机毕业设计选题推荐 - 毕设选题建议
  9. 奖励补贴有点多!武汉市大健康和生物技术产业发展奖励措施解读
  10. 股权模板:55套股权激励方案