mobi, azw, azw3, epub格式有什么区别

在这里插入图片描述

mobi, azw, azw3, epub格式有什么区别

对复杂排版的支持上是azw3好。
对使用方便来说是mobi好,因为可以邮件推送。
刚接触Kindle的小伙伴经常会被mobi、azw、azw3、epub等常见的几个格式搞的很凌乱,它们都有哪些区别呢?又各有什么优缺点呢?哪个好一些呢?其实 Amazon 的电子书格式比这可多多了,完全可以单独写一篇文章来解释,但是太技术性的也没什么必要,我们只需要知道这几个常见格式的区别就可以了。笔者汇总了一些资料,为各位小伙伴们通俗地科普一下。

这几种电子书格式从本质上来说都是从HTML文档转换而来,大多数HTML标签和CSS样式表的特性它们都支持,它们之间的主要区别在于对排版及新特性的支持与否上,为了更方便清晰的理解,笔者将这几种格式分门别类地为各位小伙伴详细解释一下:

什么是mobi、azw格式

mobi和azw格式的推手主要是Amazon,这两种电子书格式的发展很大程度上依靠Amazon这个巨大的内容提供商及其电子书阅读器Kindle的流行普及。它们同属亚马逊的私有格式,没有本质的区别,可以简单的这样理解,mobi是比较老的一种格式,而azw只是mobi的另一种形式而已,也可以理解为mobi加了个壳,亚马逊利用它对电子书做DRM版权保护。

目前市面上的mobi文件大部分是来自两种途径:epub、pdf或者txt转换成的mobi,从Amazon商店流出来的mobi。前者没什么好说的,后者要么是Amazon官方制作,要么就是自出版作者通过KDP (Kindle Direct Publishing,作者可以绕过出版社直接在Amazon上发售电子书 )平台发布,通过KDP平台发布时,作者只需要上传Word文档,其他的事情也是Amazon官方来做,从而保证了,mobi文件的规范程度。

什么是azw3格式

azw3的本质是KF8,是随着2011年Amazon推出Kindle Fire平板时一起推出的。它填补了Mobi对于复杂排版支持的缺陷,支持很多HTML5(目前尚不支持 HTML5 的视频和音频标签)和CSS3的语法,这就大大改善了原来mobi或azw内容排版上的一些缺陷,单纯从读者的角度来讲,是不输epub格式的。目前从Amazon购买的书,大部分已经是azw3格式了,而以前主流的mobi格式则越来越少,它正逐渐取代mobi成为Kindle电子书的主流格式。

什么是epub格式

下面是维基百科对epub的一段定义:
EPUB(Electronic Publication的缩写,电子出版)是一种电子图书标准,由国际数字出版论坛(IDPF)提出;其中包括3种文件格式标准(文件的附文件名为.epub),这个格式已取代了先前的Open eBook开放电子书标准。
epub格式对于复杂的排版,图表,公式等元素的兼容性比mobi格式好很多,在脚本,公式,矢量图形的支持方面也强过mobi格式,现阶段epub格式的优势体现在图文混排、图片嵌入字体等,未来可预测的优势是epub格式对于声音,影像等多媒体内容互动的支持上。

epub格式是开放标准,所以在开发工具上也会有更大的选择,像Sigil、Calibre、Jutoh等软件都可以让用户自助制作epub格式电子书,但因为良莠不齐的制作也导致一个问题:大量的epub文件其实是不符合标准,无法保证在所有支持epub的硬件和软件上都可以顺利阅读,这就和iOS系统和Android系统的区别有些相似。

亚马逊为什么不采用开放标准的epub格式呢?

为什么亚马逊不选择epub这种竞争对手(如Google、苹果)和图书馆普遍采用的标准电子书格式呢?亚马逊解释说他们的创新速度很快,采用它们自己的标准格式,能够将创新成果迅速结合到产品中去。例如,Whispersync技术(该技术通过无线接入互联网,将电子书阅读进度信息同步到各种阅读器上)以及字号放大缩小的技术。采用其他格式的电子书阅读器,以后也能把这些功能结合进来。但是,我们在提高产品性能上动作十分迅速。采用自己的格式是非常有利的,因为不用等第三方格式跟进之后再动手。

对于我们普通读者来说,其实只需要知道越新的格式其支持的特性多,更能改善、提升我们的阅读体验就可以了。这样也就不难理解为什么再用Calibre等工具将azw3转换成mobi后会产生丢失格式的问题了,毕竟新的特性一般都不会被老格式兼容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/669441.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1 引论

1 引论 操作系统(OS) -管理计算机系统资源、控制程序执行、改善人机界面、提供各种服务,并合理组织计算机工作流程和为用户方便有效地使用计算机,提供良好运行环境的一种系统软件 操作系统的目标 方便性 2. 有效性 3. 可扩充性 4…

C++泛编程(4)

类模板高级(1) 1.类模板具体化部分具体化完全具体化 2.类模板与继承 1.类模板具体化 有了函数模板具体化的基础,学习类模板的具体化很简单。类模板具体化有两种方式,分别为部分具体化和完全具体化。假如有类模板: te…

户用光伏电站设计优化方案:为行业打造示范标杆

不可再生能源的日益消耗促使了大家对新能源的使用和推广,光伏发电已经成为国家和企业大力推崇的技术。其中,户用光伏发电是重要组成部分,有非常大的市场发展空间。然而,如何优化设计,提高效率,降低成本&…

蓝桥杯备战(AcWing算法基础课)-高精度-减-高精度

目录 前言 1 题目描述 2 分析 2.1 第一步 2.2 第二步 3 代码 前言 详细的代码里面有自己的理解注释 1 题目描述 给定两个正整数(不含前导 00),计算它们的差,计算结果可能为负数。 输入格式 共两行,每行包含一…

【Iceberg学习二】Branch和Tag在Iceberg中的应用

Iceberg 表元数据保持一个快照日志,记录了对表所做的更改。快照在 Iceberg 中至关重要,因为它们是读者隔离和时间旅行查询的基础。为了控制元数据大小和存储成本,Iceberg 提供了快照生命周期管理程序,如 expire_snapshots&#xf…

函数调用栈是什么

今天在力扣leetbook上看《图解算法数据结构》中的空间复杂度这一小节,看到如下这句话: “程序调用函数是基于栈实现的,函数在调用期间,占用常量大小的栈帧空间,直至返回后释放。” 这句话的意思是,在程序中…

2.3作业

作业要求&#xff1a; 程序代码&#xff1a; #include<stdlib.h> #include<string.h> #include<stdio.h> typedef struct node //定义链表节点结构体&#xff1a;数据域、指针域 {int data;struct node *next; }*linklist;linklist create_node()//创建新节…

C++类和对象入门(三)

顾得泉&#xff1a;个人主页 个人专栏&#xff1a;《Linux操作系统》 《C从入门到精通》 《LeedCode刷题》 键盘敲烂&#xff0c;年薪百万&#xff01; 前言 在c中&#xff0c;类型分为两类&#xff0c;一类是内置类型&#xff0c;另一类是自定义类型。 1.内置类型&#xf…

Linux内存管理:(十二)Linux 5.0内核新增的反碎片优化

文章说明&#xff1a; Linux内核版本&#xff1a;5.0 架构&#xff1a;ARM64 参考资料及图片来源&#xff1a;《奔跑吧Linux内核》 Linux 5.0内核源码注释仓库地址&#xff1a; zhangzihengya/LinuxSourceCode_v5.0_study (github.com) 外碎片化发生时&#xff0c;页面分配…

Python基础知识:Python流程控制语句

流程控制就是控制程序如何执行的方法&#xff0c;适用于任何一门编程语言&#xff0c;其作用在于&#xff0c;可以根据用户的需求决定程序执行的顺序。计算机在运行程序时&#xff0c;有3种执行方法&#xff0c;第一种是顺序执行&#xff0c;自上而下顺序执行所有的语句&#x…

分享63个节日PPT,总有一款适合您

分享63个节日PPT&#xff0c;总有一款适合您 63个节日PPT下载链接&#xff1a;https://pan.baidu.com/s/1kZeiN06KbevtSCs5vXm6oA?pwd6666 提取码&#xff1a;6666 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不易…

【代码随想录-哈希表】两个数组的交集

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…

MySQL 小技巧:使用 xtrabackup 2.4 实现 完全备份及还原

演示&#xff1a;使用 xtrabackup 2.4 实现 完全备份及还原 本案例基于 CentOS 7 的 Mariadb5.5 实现&#xff0c;也支持 MySQL5.5 和 MySQL5.7 1) 安装 xtrabackup 包 // 先安装 Mariadb5.5 和 xtrabackup 包 [rootcentos7 ~] yum install mariadb-server -y [rootcentos7 ~]…

802.11 MAC帧介绍

控制帧 RTS&#xff08;Request To Send&#xff09;&#xff1a;用于申请无线媒介的使用时间CTS&#xff08;Clear To Send&#xff09;&#xff1a;用于回复RTS帧ACK&#xff1a;对MAC帧的肯定确认PS-POLL&#xff1a;STA用于从AP中获取因省电模式而缓存的数据&#xff0c;只…

AMH面板如何安装与公网远程访问本地面板界面

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

解析 JavaScript 异步编程:从回调地狱到 Promise 和 Async/Await

在现代的JavaScript开发中&#xff0c;处理异步任务变得愈发重要&#xff0c;因为它们允许我们在等待I/O、网络请求或定时器等事件时继续执行其他任务&#xff0c;以提高程序的性能和响应能力。本文将介绍JavaScript中异步编程的演变过程&#xff0c;从最初的回调地狱到后来的P…

Leetcode 3026. Maximum Good Subarray Sum

Leetcode 3026. Maximum Good Subarray Sum 1. 解题思路2. 代码实现 题目链接&#xff1a;3026. Maximum Good Subarray Sum 1. 解题思路 这一题的话主要就是要快速遍历所有的good subarray并快速获得每一个good subarray的和的最大值。 因此&#xff0c;问题就主要就成了两…

蓝桥杯刷题--python-2

0星期一 - 蓝桥云课 (lanqiao.cn) import datetimestart = datetime.date(1901, 1, 1) end = datetime.date(2000, 12, 31)res = 0 while not start > end:if start.weekday() == 0:res += 1start += datetime.timedelta(days=1) print(res)datetime 模块 import datetime…

容器和镜像

容器和镜像是现代软件开发和部署中重要的概念&#xff0c;它们通常与容器化技术&#xff08;如Docker&#xff09;相关联。以下是它们的基本定义和关系&#xff1a; 容器(Container): 容器是一种轻量级、可移植的运行环境&#xff0c;其中包含了应用程序及其依赖项&#xff08;…

简单实践 spring clound 使用openfeign

1.概要 这是在前面工程基础上的一个变更。 前工程&#xff1a;检查实验 spring cloud nacos nacos-server-2.3.0-CSDN博客 2 代码 2.1 引入依赖 <dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-open…