请选择 进入手机版 | 继续访问电脑版

LOGIN.

登录论坛可获得更多帮助信息

QQ登录

只需一步,快速开始

还没有账号? 会员注册 |  忘记密码?
本帖最后由 rockiecxh 于 2011-6-28 12:28 编辑

电脑上有不少的EPUB格式的电子书,想一次性把它全转为MOBI格式,试过Calibre,那速度慢得真是叫人难以忍受,而发邮件给Amazon,对于这么多的文件想想都是噩梦。好在Amazon发布了新版的制作kindle电子书的命令行工具:KindleGen1.2,试了一下转换速度相当快,只是不支持通配符,于是自己写了个简单的批处理,这样我们便可以批量制作mobi电子书了。

在这个论坛学了不少K3的知识,做为回报,这次不做伸手党。

具体步骤如下:


1、下载Windows版:KindleGen.zip文件到你的电脑。
下载地址: 115盘
kindlegen_win32_v1.2.zip

2、解压到任意目录,比方说:D:\KindleGen
3、下载批处理文件epub2mobi.bat
epub2mobi.bat

或者自己拷贝下面这段代码存为BAT文件(epub2mobi.bat)
又加上了时间差的计算, 用来显示整个转换过程所花时间.

  1. @echo off
  2. @title kindlegen epub转换mobi

  3. REM 一些批处理的基础 http://www.3dch.net/read-htm-tid-24825.html
  4. REM 设置存放转换好的MOBI电子书的目录。由于kindlegen只能将转好的书放在源文件同一目录下,
  5. REM 所以为方便管理,需要自己移到新的位置
  6. set mobidir=mobi

  7. REM 设置kindlegen的解压后的位置,比方说C:\KindleGen
  8. set path=D:\GreenSoft\kindlegen_win32_v1.2

  9. echo 现在时间是%time:~0,2%点%time:~3,2%分%time:~6,2%秒
  10. set time1=%time:~0,2%%time:~3,2%%time:~6,2%

  11. for %%i in (*.epub) do kindlegen "%%i"

  12. if not exist %mobidir% md %mobidir%

  13. if exist *.mobi move *.mobi %mobidir%

  14. echo 现在时间是%time:~0,2%点%time:~3,2%分%time:~6,2%秒
  15. set time2=%time:~0,2%%time:~3,2%%time:~6,2%

  16. set /a time3=%time2%-%time1%
  17. echo 间隔%time3%秒
  18. pause
复制代码



4、根据自己的情况修改下载好的批处理文件
5、将需要转换的epub书籍拷贝到一个自己认识方便的文件夹内,比方说D:\epub
6、将修改好的批处理文件也拷贝到上面提到的epub文件夹内
7、双击运行批处理文件,过一会就可以将文件夹内所有EPUB书籍转为MOBI格式了

注意:kindlegen对EPUB里的METADATA要求比较高,有些格式不严谨的EPUB会转换失败,所以最后的选择还是用calibre来转换,或者发邮件给Amazon帮你转。

如果需要查看kindlegen的使用帮助的话,直接在CMD命令行里运行kindlegen,如下所示:
D:\GreenSoft\kindlegen_win32_v1.2>kindlegen

**************************************************
* Amazon.com kindlegen(Windows) V1.2 build 33307 *
* A command line e-bookcompiler                *
* Copyright Amazon.com2011                     *
**************************************************

Usage : kindlegen filename.opf/.htm/.html/.epub [-c0 or -c1 or c2][-verbose] [-rebuild] [-onlydeps or -nodeps] [-western] [-o<file name>]
Options:
   -c0: no compression
   -c1: standard DOCcompression
   -c2: Kindle huffdiccompression
   -o <filename>: Specifies the output file name. Output filewill be created in the same directory as that of input file.<file name> should not containdirectory path.
   -verbose: verbose output
   -rebuild: rebuilds alldependencies
   -onlydeps: build only neededdependencies
   -nodeps: do not check/builddependencies
   -western: force build ofWindows-1252 book
   -releasenotes: display releasenotes
   -gif: images are converted toGIF format (no JPEG in the book)

8、从帮助我们可以看到kindlegen支持多种格式文件的转换,大家只需要依葫芦画瓢就好了。
9、另外可以用MobiPocket ebook Reader对转换好的MOBI文件进行预览
http://u.115.com/file/aqk291xn#mobireadersetup.msi

我在这里只是抛砖引玉,希望引高手出来做出一些更好用的脚本来。
rockiecxh (中级会员) 发表于 2011-6-28 09:59:20 显示全部楼层
默认情况下kindlegen会做标准压缩,也可以用 -c0, -c1, -c2中的任何一个来控制压缩比。
我做了下简单测试:
-c0 : 不做压缩
-c1 : 标准压缩
-c2 : Kindle专用压缩
其中,-c1和-c0转换速度比较快,-c2会相对慢一点,但-c2压缩的大一点,大家可以根据自己需要做相应调整
比方说比较介意存储空间的,可以对转换参数做如下调整:
for %%i in (*.epub) do kindlegen -c2 "%%i"

如果比较介意转换速度的话,就用默认的就好了
raisin (中级会员) 发表于 2011-6-28 10:42:31 显示全部楼层
本帖最后由 raisin 于 2011-6-28 10:44 编辑

Calibre确实慢得很,一个20M的epub转换为mobi估计要半个小时以上的时间。

楼主实测Kindlegen转换的用时大致是什么样子的?

另外,这样转换后的mobi文件还会保留epub中的章节吗(就是可以用左右键在章与章之间切换那种的)?
rockiecxh (中级会员) 发表于 2011-6-28 12:17:38 显示全部楼层
本帖最后由 rockiecxh 于 2011-6-28 12:21 编辑

回复 3# raisin


    我倒是没试过转一个20M的文件需要多少时间, 不过刚才找了一个2.65M的文件算了下时间.
标准压缩: 9秒
c2压缩: 33秒

两者相差还是不小的, 压缩的确是费时间

章节应该会保留的, 只是我还没有实际测试, 我觉得是没什么问题的
rockiecxh (中级会员) 发表于 2011-6-29 02:25:49 显示全部楼层
实测转换时间:
19分钟转换155本书,其中成功109本书 总计109M
rockiecxh (中级会员) 发表于 2011-6-29 02:26:33 显示全部楼层
实测转换时间:
19分钟转换155本书,其中成功109本书 总计109M
lqqhqw (金牌会员) 发表于 2011-6-29 15:49:34 显示全部楼层
收藏收藏!!
你懂的!

http://iask.sina.com.cn/u/1167175563/ish?folderid=517581

其实看古文最好看繁体字古文……
六月看雪景 (Vip_K) 发表于 2011-6-30 21:53:12 显示全部楼层
大大,你把另外几个比如htm的也写了吧,我试了试画个瓢但是没出现葫芦的啊,求救。
60 字节以内
不支持自定义 Discuz! 代码
raisin (中级会员) 发表于 2011-7-1 09:04:18 显示全部楼层
实测,用5M的边荒传说,标准压缩1分钟左右,不压缩,半分钟以内;
c2压缩,5分钟以上(具体时间不详,因为看耗时太长取消了)

但是标准压缩和不压缩,生成的文件会很大,上面这个文件转换后有13M左右
玖玖捌 (注册会员) 发表于 2011-7-1 19:12:17 显示全部楼层
WIN7好像不能用
K3在手,天下我有!
ddccatty (注册会员) 发表于 2011-7-4 15:57:10 显示全部楼层
从官网下的kindlegen,还比较好用,就是有60%多的EPUB显示 language not recognized in metadata。The dc:Language field is mandatory。Aborting
不知道怎么办
wbgsyz (中级会员) 发表于 2011-7-4 20:34:21 显示全部楼层
Calibre确实太慢了,这个又太复杂了,不知道能不能改进一下
qfqiufeng (新手上路) 发表于 2011-7-31 15:12:24 显示全部楼层
本帖最后由 qfqiufeng 于 2011-8-1 12:26 编辑
从官网下的kindlegen,还比较好用,就是有60%多的EPUB显示 language not recognized in metadata。The dc: ...
ddccatty 发表于 2011-7-4 15:57



    有这个问题,不知道怎么直接指定语言代码。
dreamrise (注册会员) 发表于 2011-8-12 22:13:17 显示全部楼层
Language not specified in metadata. The dcanguage field is mandatory. Aborting.
这个报错的处理:

将原*.epub文件改名为*.zip,解压后,在目录下找*.opf,然后用文本编辑器打开,找到dc:language
改为:
<dc:language>en-US</dc:language>
或者
<dc:language>zh-CN</dc:language>
保存,然后对目录重新打包为zip, 再改名为*.epub.

再次用KindleGen1.2转换生成mobi.
60 字节以内
不支持自定义 Discuz! 代码
yjtdkj (Vip_K) 发表于 2011-8-17 12:48:12 显示全部楼层
楼主,网盘到期了啊
人生如戏
您需要登录后才可以回帖 登录 | 会员注册

Archiver|手机版|   

© 2009-2012 Comsenz and 麦兜电纸书All rights reserved

麦兜电纸书论坛 -- 电纸书、电子书阅读器方面的专业交流论坛~~( 渝ICP备09052611号 )

回顶部