epub文件格式揭秘
应该说 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文件格式揭秘相关推荐
- 【文件格式探究】EP.1 对ePub文件格式的初探
这是"文件格式探究"专题的第 1 期--初探 "ePub" 文件格式.这个专题将会给各位读者呈现笔者探索各种文件格式的过程,具体则是文件的内容是如何呈现出来的. ...
- epub是什么文件?epub文件怎么打开?
EPUB 属于一种可以"自动重新编排"的内容:也就是文字内容可以根据阅读设备的特性,以最适于阅读的方式显示. EPUB 解决了 PDF 和开发人员友好性有关的所有瑕疵.一个 EPU ...
- epub直接获取书名及书封面
epub直接获取书名及书封面 完整的Demo下载GitHub 里面有详细介绍如何使用 一.场景说明 某些场景下我们需要直接获取epub类型书籍的封面及书名,网络上很多文章介绍的都是通过Slf4j等开源 ...
- 使用 EPUB 制作数字图书 基于 XML 的开放式 eBook 格式
/Page1 简介: 是否需要分发文档.创建电子图书或者把喜欢的博客文章存档?EPUB 是一种开放式的数字图书规范,以常用的技术如 XML.CSS 和 XHTML 为基础,EPUB 文件可在便携式的 ...
- 使用 EPUB 制作数字图书(转发)
http://www.ibm.com/developerworks/cn/xml/tutorials/x-epubtut/index.html 使用 EPUB 制作数字图书 基于 XML 的开放式 e ...
- 阅读软件汇-EPUB专版
阅读软件汇-EPUB专版 随着科学技术的不断发展,我们已经进入了信息时代,时代发展的速度在加快,人们的生活节奏也在不断加快,为此许多传统的事物已经无法满足时代的需求,需要将一些现代技术融入其中.传统的 ...
- epub图书_使用EPUB构建数字图书
epub图书 在你开始前 本教程将指导您创建EPUB格式的电子书. EPUB是一种基于XML的,对开发人员友好的格式,它已成为数字图书的事实上的标准. 但是EPUB不仅适合书籍:有了它,您可以: 捆绑 ...
- Spire.Doc功能演示:在Java中将Word转换为EPUB
Spire.Doc for Java 是一款专业的Java Word组件,开发人员使用它可以轻松地将Word文档创建.读取.编辑.转换和打印等功能集成到自己的Java应用程序中. EPUB(电子出版物 ...
- Epub电子书阅读器功能技术预研
Epub格式演变及其文件结构: https://vernlium.github.io/2015/06/10/epub%E6%A0%BC%E5%BC%8F%E8%A7%A3%E6%9E%90/ 如何构建 ...
最新文章
- bat批处理文件启动Eclipse和ivy本地仓库的配置
- mysql默认无密码的问题
- [Database] 数据库范式理论
- Monte carlo
- java中多线程的创建方式一:
- 简单的Java服务器和客户端的通信
- @Transactiona注解的使用
- Python基础手册
- html语言中的字体代码,html中让字体变红的代码
- VMware虚拟机XP系统安装图文教程
- 第五次打卡 模型融合
- java.util.concurrent 同步器框架详解
- 正则表达式匹配分析工具 C#编写
- 芜湖市市一中2021年高考成绩查询,2021年芜湖各高中录取分数线预测
- 从零开始的iOS开发:10 | 如何构建一个APP
- developer.biao.daily.20140628
- 几家大厂求职与面试(一):Java必备,不看就是遗憾
- 微信小程序3-模板与配置
- The 2020 ICPC Asia Macau Regional Contest
- 解决VUE [WDS] DISCONNECTED 错误
热门文章
- 解决macOS无法在线升级更新的问题
- 三维人脸_无法打开gl\glaux.h头文件及无法生成 SAFESEH 映像的解决方法
- 阿里云中间件是什么,有哪些产品
- 【游戏开发】2D RPG游戏
- PEST分析顺丰服务需求_快递行业宏观环境分析
- android天气预报sdk,Android手机集成天气预报功能方案:全国天气预报API调用
- 败家女提供QQ伤感日志_喜欢1个人听着忧伤的歌
- 最新计算机毕业设计选题推荐 - 毕设选题建议
- 奖励补贴有点多!武汉市大健康和生物技术产业发展奖励措施解读
- 股权模板:55套股权激励方案