KindleUnpack - Python解压Amazon / Kindlegen生成的电子书

文章目录

    • 关于 KindleUnpack
    • 使用
      • 选项


关于 KindleUnpack

  • github : https://github.com/kevinhendricks/KindleUnpack

KindleUnpack 是基于python的软件来解压Amazon / Kindlegen生成的电子书

KindleUnpack将非drm Kindle/MobiPocket电子书解压到其组件中 根据正在处理的Kindle/Mobi电子书的类型有哪些变化

  • MobiPocket和早期的Kindle版本7或更低版本的电子书 被解压缩到原始的html 3.2 和 图像文件夹中,然后可以由MobiPoketCreator编辑和重新处理。
  • Kindle Print Replica 电子书被解包为原始PDF和任何相关的图像。
  • 仅Kindle KF8电子书(.azw3)被解包成类似epub的结构,该结构可能是也可能不是完全有效的epub,这取决于是否最初向kindlegen提供了完全有效的epub作为输入。
    注:生成的epub应使用epub验证器进行验证,如果需要更改,应正确加载到Sigil和Calibre中,其中任何一个都可用于编辑结果以创建完全有效的epub。
  • 新版Kindle电子书同时包含KF8和旧版,分为两个不同的部分:第一部分是旧版的MobiPocket格式电子书,第二部分是类似epub的结构,可以使用Sigil进行编辑。

使用

KindleUnpack程序需要Python 2.7。X或Python 3.4或更高版本才能正常运行。

在Windows机器上,我们强烈建议您安装ActiveState的免费版本 活动Python 2.7。X或3.4。X或更高版本,因为它可以正确安装所有必需的部件 包括tk小部件工具包,并更新Windows机器上的系统路径。官方的 来自python.org的installer有时不能正确处理Windows机器的此问题。

在Mac OS X 10.6及以后的和几乎所有最近的Linux版本,必需的版本 的Python已经作为官方操作系统安装的一部分安装,所以Mac OS X和 Linux用户不需要额外安装任何东西。

要安装KindleUnpack,只需在您的机器上找到一个合适的位置并完全解压缩它。

如果您更喜欢命令行界面,只需查看KindleUnpack的“lib” 文件夹,用于存放KindleUnpack.py python程序及其支持模块。
你应该 然后可以通过以下命令运行 KindleUnpack.py:

python kindleunpack.py [-r -s -d -h -i] [-p APNX_FILE] INPUT_FILE OUTPUT_FOLDER

你替换的地方:

INPUT_FILE — 所需Kindle/MobiPocket电子书的路径

OUTPUT_FOLDER — 电子书将被解包的文件夹路径


选项

  • -h 打印帮助信息
  • -i 使用HDImages覆盖低分辨率版本(如果存在)
  • -s 拆分组合mobi为老mobi和mobi KF8电子书
  • -p APNX_FILE .apnx文件的路径,该文件包含关联的实际页码 使用azw3电子书(可选)。注意:许多apnx文件都有 任意分配的页面偏移量会混淆KindleUnpack 如果使用
  • --epub_version= 指定要解压缩的EPUB版本为:2,3或A(自动)或 F表示Force to EPUB2,默认值为2
  • -r 将原始数据写入输出文件夹
  • -d 转储头和其他调试信息到输出和额外的文件

请报告任何错误或评论/请求我们的粘性论坛在Mobileread网站。

查看电子书格式 > Kindle格式 > KindleUnpack (MobiUnpack)。


2024-06-14(五)

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

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

相关文章

Android Studio新增功能:Device Streaming

今天将Android Studio升级到2023.3.1 Patch2。发现新增了Device Streaming功能。支持远程使用Google的物理设备调试程序。这样可以方便地在真实设备上测试自己的APP。这对于手头没有Google设备的开发者而言,确实方便很多。该功能目前处于测试阶段,在2025…

交易中的群体行为特征和决策模型

本文基于人的行为和心理特征,归纳出交易中群体的行为决策模型,并基于这个模型,分析股价波浪运行背后的逻辑,以及投机情绪的周期变化规律,以此指导交易,分析潜在的风险和机会,寻找并等待高性价比…

system与excel族函数区别

1.system #include<stdlib.h> int system(const char *command); comand是命令的路径&#xff0c;一般我们用绝对路径 system函数会创建新的进程&#xff0c;新的进程执行完返回原来的进程&#xff0c;原来的进程则继续执行后面的代码段。 如我们创建一个sys.cpp文件…

使用pip2pi和nginx搭建私有pip镜像源方法

在内网环境下部署python开发环境&#xff0c;安装python第三方库比较麻烦&#xff0c;特别是安装需要多个依赖的库。一种比较好的解决方案是搭建一个本地的私有pip镜像源&#xff0c;有多个方案可以选择&#xff0c;比如pypiserver、pip2pi等&#xff0c;本文介绍使用python的p…

Python求子数组和的所有元素(附Demo)

目录 前言1. 暴力求解2. 前缀和哈希表3. 滑动窗口 前言 工作需要&#xff0c;对应需要优化查找子数组和等于特定值的算法 对应的算法推荐&#xff1a;子数组相关题目 以下算法主要针对Python 1. 暴力求解 双重循环时间复杂度为 O(n2) def subarrays_with_sum_equal_k(num…

PostgreSQL如何使修改的参数生效

PostgreSQL如何使修改的参数生效 在 PostgreSQL 中&#xff0c;配置参数的更改往往需要不同的方式来使其生效。根据参数的不同&#xff0c;它们的生效方式可能有所区别&#xff0c;例如&#xff1a; 立即生效&#xff1a;某些参数可以通过会话级别的设置即时生效&#xff0c;…

HTML的常用标签

HTML&#xff08;补&#xff09; CSS选择器 元素选择器&#xff1a;指定一个标签给这个标签设置一个默认的样式。设置的样式对所有相同的标签都有用。 id选择器&#xff1a;我们可以给标签指定一个唯一的id&#xff0c;然后根据id可以在style标签中设置对应标签的样式元素。设…

【仿真建模-anylogic】FlowchartBlock原理解析

Author&#xff1a;赵志乾 Date&#xff1a;2024-06-17 Declaration&#xff1a;All Right Reserved&#xff01;&#xff01;&#xff01; 1. 类图 2. 原理解析 2.1 核心函数 函数功能FlowchartBlock(Engine engine ,Agent owner, AgentList population )构造函数&#xff…

springboot-自定义properties文件

在springboot中&#xff0c;如果我们想加载外部的配置文件&#xff0c;但是又不想与其他的配置文件产生明显的耦合&#xff0c;那么我们可以把这些配置文件&#xff0c;单独弄成一个独立的配置文件&#xff0c;比如下面的配置文件&#xff0c;我们想把这些配置移动到user.prope…

CountDownLatch案例

CountDownLatch&#xff08;倒计时门闩&#xff09;是Java并发编程中的一个同步工具&#xff0c;其作用是允许一个或多个线程等待其他线程完成操作后再继续执行。具体来说&#xff0c;它通常用于以下场景&#xff1a; 等待其他线程完成某项操作&#xff1a; 一个或多个线程需要…

element-vue3-admin用router.push跳转新页面并刷新新页面

element-vue3-admin用router.push跳转新页面并刷新新页面 方法一&#xff1a;使用key属性强制刷新1.首先在invex.vue页面加上router-view标签对2.然后在add.vue页面加入如下代码 方法二&#xff1a;使用location.reload()在add.vue页面加入location.reload()强制浏览器刷新整个…

Day 24:100301. 构成整天的下标对数目II

Leetcode 100301. 构成整天的下标对数目II 给你一个整数数组 hours&#xff0c;表示以 **小时 **为单位的时间&#xff0c;返回一个整数&#xff0c;表示满足 i < j 且 hours[i] hours[j] 构成 **整天 **的下标对 i, j 的数目。 **整天 **定义为时间持续时间是 24 小时的 *…

在Spring Cloud项目中集成Springdoc OpenAPI生成OpenAPI 3文档的详细解析

在Spring Cloud项目中集成Springdoc OpenAPI生成OpenAPI 3文档的详细解析 在Spring Cloud项目中生成OpenAPI 3文档&#xff0c;可以使用Springdoc OpenAPI。Springdoc OpenAPI提供了一种简单的方法来生成符合OpenAPI 3规范的API文档。以下是详细的步骤和解析&#xff0c;展示如…

助力樱桃智能自动化采摘,基于YOLOv5全系列【n/s/m/l/x】参数模型开发构建果园种植采摘场景下樱桃成熟度智能检测识别系统

随着科技的飞速发展&#xff0c;人工智能&#xff08;AI&#xff09;技术已经渗透到我们生活的方方面面&#xff0c;从智能家居到自动驾驶&#xff0c;再到医疗健康&#xff0c;其影响力无处不在。然而&#xff0c;当我们把目光转向中国的农业领域时&#xff0c;一个令人惊讶的…

虾皮平台API:获取商品买家评论数据

一、接口核心功能 在电商领域&#xff0c;买家评论对于商品的销售和商家的口碑至关重要。虾皮作为东南亚地区知名的电商平台&#xff0c;为商家提供了丰富的商品买家评论数据。为了方便商家获取这些数据&#xff0c;我们的API接口服务其核心功能就是获取商品买家评论数据信息。…

2024年6月17日--6月23日(渲染+ue独立游戏,)

工作要继续做渲染了&#xff0c;所以还是要把渲染搞一搞。 试过重点放在独立游戏上&#xff0c;有个indienova独立游戏团队是全职的&#xff0c;由于他们干了几个月&#xff0c;节奏暂时跟不上&#xff0c;紧张焦虑了。五一时也有点自暴自弃了&#xff0c;实在没必要&#xff…

docker和docker compose 部署

一. 将微服务运行在docker上&#xff1a; 1.新建一个空文件夹docker-demo&#xff0c;在里面再新建文件夹app&#xff0c;在app目录下新建一个名为Dockerfile的文件。 2.编写Dockerfile文件 3.构建镜像 4.启动镜像 5.可以访问了。 二使用Dockerfile构建微服务镜像 1.将j…

微信小程序录音和头像上传

录音&#xff1a; WXML <view class"box4">{{time}}</view> <button bind:tap"recorderBtn">开始录音</button> <button bind:tap"removeBtn">结束录音</button> <button bind:tap"playBtn"…

Spring (60)Spring WebFlux

Spring WebFlux 是 Spring 5.0 引入的新的响应式框架&#xff0c;用于构建异步的、非阻塞的和事件驱动的服务。WebFlux 使用了 Reactor 作为其响应式库&#xff0c;该库基于 Reactive Streams 规范。 核心概念 在深入了解之前&#xff0c;我们需要明确几个关键概念&#xff1…

Python | Leetcode Python题解之第160题相交链表

题目&#xff1a; 题解&#xff1a; class Solution:def getIntersectionNode(self, headA: ListNode, headB: ListNode) -> ListNode:A, B headA, headBwhile A ! B:A A.next if A else headBB B.next if B else headAreturn A