AZW3 是亚马逊用于 Kindle Format 8 的文件扩展名,通常简称为 KF8。它随 Kindle Fire 一起出现,用来取代 MOBI,这是一种最早由 Mobipocket 继承而来的旧格式。此变化主要是出于排版需求:出版社需要真正的字体、带样式的标题以及在传输到设备后仍能保持的页面布局,而 MOBI 无法实现这些功能。实际使用中,AZW3 非常接近一种重新打包进 Kindle 外壳的 EPUB 3 电子书,大致就是当出版社上传 EPUB 文件时亚马逊的转换工具所做的事情。
AZW3 文件的构成方式
外层壳依然是 MOBI 使用的 Palm Database 容器,因此文件是二进制的,同一类工具也能识别该家族。变化发生在内部内容上:KF8 不再使用上世纪九十年代的 HTML,而是包含一个编译后的 HTML5 和 CSS3 子集。正因如此,AZW3 才能携带嵌入字体、首字下沉、嵌套和编号列表、背景图像、表格、固定版式页面,以及可响应屏幕尺寸的样式规则。
文本仍然被切分为记录,并通过 PalmDOC 或 HuffCDIC 方案压缩,这两种方式都是无损的。标记语言以骨架加片段的形式存储,使阅读器可以在不解析整章内容的情况下渲染章节的一部分。实际结果是,你无法像从 EPUB 那样,从 AZW3 中直接提取干净的 HTML 文件。从亚马逊购买的图书通常带有 DRM,它会加密内容并与购买账号绑定,而且如今很多书籍会改用亚马逊更新的 KFX 格式进行投递。
AZW3 包含哪些元数据
AZW3 继承了 MOBI 的 EXTH 头部,即扩展头部:其中是一系列条目,每个条目用数字而不是名称标记。常见字段包括更新后的书名、作者、出版社、描述、ISBN、主题标签、出版日期、版权信息、语言、贡献者以及 ASIN,即亚马逊在其目录中赋予该书的标识符。还有一个单独的条目用来标记哪条记录包含封面图像。底层的 Palm 头部会提供内部数据库名称,通常是压缩过的书名形式,以及创建和修改时间戳。
有两个条目特别值得注意。贡献者字段几乎从来不是一个真人:转换应用会把自己写进去,因此它通常显示为带版本号的 Calibre 或 kindlegen,从而暴露出生成文件的软件。而内容类型代码 cdeType 则用来区分商店购买的图书(标记为 EBOK)和你自己邮件发送或手动传输的个人文档(标记为 PDOC)。该代码与 ASIN 一起说明了文件的来源。因此,AZW3 中与个人相关的痕迹包括作者和贡献者名称、生成软件及其版本、时间戳以及商店标识。文件中的封面图像会保留自己的 EXIF 数据,即存储在照片中的相机信息块,其中可能包括设备型号,甚至是 GPS 坐标。文件中不包含的是你的阅读历史:高亮、书签和上次阅读位置保存在设备和账号中,并不会写回到书本里。
何时使用 AZW3
AZW3 是在 Kindle 硬件和 Kindle 应用上阅读、并保持出版社预期排版的格式,它可以通过 USB 手动传输,无需经过商店。与 MOBI 相比,结论很明确:容器相同,排版能力好得多,你唯一要放弃的只是最早期、无法读取 AZW3 的 Kindle 设备。与 EPUB 相比,则是覆盖范围的问题。EPUB 能在种类繁多的设备、应用和图书馆系统中打开,而 AZW3 基本上只在 Kindle 生态中使用。如果一本书需要在各种环境下都能正常使用,请保留 EPUB;如果它只会在 Kindle 上阅读,AZW3 则是更贴合本机的格式。