Tag: epub

  • 手搓一个AI赋能的电子书阅读器

    手搓一个AI赋能的电子书阅读器

    我挺喜欢看书的,也挺喜欢看电子书——特别是有些时候,实体书搞不到,那就只能看电子书了。

    之前吧,我用一个非常old的KPW3看书,也不敢抱怨:屏幕小了一点,英文单词翻译弱了一点,中文输入(比如添加笔记)拉了一点,导出功能肋了一点,售后服务是没有一点……但没有别的特别动心的选择。

    这不,AI来了,我感觉我又行了,我编程能力一般,但可以让AI帮我写一个AI赋能的电子书阅读器啊!

    说干就干。今年年初的时候,我萌生了这个想法,从GitHub那里拉了一个现成的Python ePub解析库,然后在此基础上加入自己的功能。

    比起之前的随手0天完成项目,我是很认真地在创作——为此我专门升级了我的显卡呢!

    先说开发工具、AI模型配置。

    我选用了Visual Studio Code作为我的开发工具,同时用GitHub Copilot作为我的AI agent,其中的GPT 5.4作为模型。

    用KPW3看书有一个重要的不便:它的标注功能太弱了。我看书有一个习惯:喜欢划线,有一些单词——特别是拉丁文短语——我想记下来,有一些地方我觉得很有意思——可以进行后续的讨论和写作……

    有了一块很强的显卡后,这些我都想让AI来完成,于是我安装了Ollama,并安装了模型Hermes3作为本地快速查询的模型,然后安装了Gemma4:31b-cloud作为远程模型。

    这么一来,整体应用的框架就算基本成了:

    1. 打开WEB界面,上传书籍,阅读。
    2. 阅读界面可以调整阅读界面、字体名称、字体大小、Light/Dark模式等。
    3. 如果看到我不认识的单词或者专属名词,可以划词翻译或者要求AI给出解释
    4. 如果看到一段话我想加入我后续的讨论和写作,我可以要求AI就此给出讨论要点
    5. 一般地,我可以随手加个批注
    6. 以上所有这些AI产出的、我的内容都可以保存到数据库,以便整理、导出。

    这就是我这个AI电子书阅读器的基本功能了。

    在开发过程中,我基本没有写代码,就是在和我的IDE“聊天”。最终的阅读界面是这样的1

    (上图是模拟纸质背景读书的效果,并显示了我让AI查找Lynch syndrome返回的结果——用的是Cloud模型。)

    回到书籍列表界面并展示深色效果:

    以及本书所有划线部分的内容——导出部分还在开发:

    这个程序的代码我已经放在了GitHub:https://github.com/taylorren/ai-reader,有兴趣的朋友可以克隆一份,启动不一样的电子书阅读之旅

    相关文章


    1. 微信可能会不让我发图片,但我不准备换了。 
  • 制作、发布电子书的一般步骤

    这里说的电子书格式仅限于epub和md格式。严格的说,md格式不是电子书的一种,只是在我的制作过程中会用到md格式来作为媒介最终制作epub电子书,同时md格式的文本也可以发布到我用的Wiki平台。

    使用到的软件

    一般步骤

    如果你是自己写作,那么电子书的内容来源就是你的原创。我的建议是用Markdown Pad2进行创作,MP2可以拷贝输出md格式——于是就可以无缝粘贴到DokuWiki。当然,要显示md格式的wiki文档,需要为DokuWiki安装一个插件,而且页面名称应该以md结尾。MP2也可以拷贝输出html格式,于是可以进一步到Sigil中进行编辑。

    如果你是转换格式,那么来源就是你下载的文档。

    下载的文档有多种格式,Sigil可以打开所有的未加密的epub文档,如果是html文档,我的建议是拷贝所有的html格式的内容到Sigil中去,由Sigil来完成epub的建立,如果是txt文档,我的建议是通过MP2编辑,然后再对应的输出md格式或者html格式。

    在Sigil中,epub是通过各个章节来排列顺序的,同时,它会将<h?>之类的html标记翻译到TOC中对应的标题层级。因此,需要特别注意<h?>的标记是否正确嵌套,否则生成的TOC一定是错乱的——虽然它能带你到正确的地方。

    epub中图片的处理,在Sigil中也可以轻松做到。我一般是将图片加入到epub中,然后在需要用到图片的地方用类似<img src=”../Images/123.jpg”/>的方式加以链接。

    Sigil对HTML的验证目前还是停留在XHTML 1.0上,所以<img>这样的html标记必须加上/结束。Sigil支持html源代码视图的编辑,并且在保存和切换到书籍视图的时候会进行html校验,保证代码的严格性。

    屏幕截图(34)

    另外,最好创建一个titlepage.html,就放一张书籍的封面。

    通过Sigil创建的epub书籍,一般已经可以传到iPad、Android设备上用相应的软件进行阅读。但是为了更好的保证兼容性,我建议用Calibre最后进行一下微调。这个步骤很紧要,如果不进行这个步骤,有可能epub出现乱码——在这点上,iBooks的兼容性要好一些,但是Android设备的就比较差一些。

    本文收录于[go4pro.org]

  • 将DRM去掉!去掉!!

    在Kobo上买的电子书都有DRM的保护,你只能在关联了Adobe Digital Edition(ADE)账户的机器上用ADE打开。

    我倒不是想要把它怎么样怎么样。我的问题和需求很简单:我是可以在iPad的Kobo应用程序中看书了,但是我花钱买了的书,我想让肾后在她的iriver story里也能看到。这应该是符合平时我们买书的惯例的。试问:如果我往家里买了一本书并付了钱,难道肾后还需要付钱才能看这本书吗?

    经过Google的帮助,我终于成功的将有DRM保护的epub电子书的DRM保护去掉了。不敢独享这个过程,下面列出一些关键的步骤:

    1. 你必须安装Python 2.6版本,并同时安装一个叫做PyCrypto的扩展。我用的Python版本是2.6.2,PyCrypto的版本是2.1.0。都是Windows下的。
    2. 下载这两个关键的Python文件:aineptepub.pyw以及ineptkey.pyw。后缀w表示这两个文件是Windows版本的。
    3. 在命令行下运行python ineptkey.pyw。经过一段时间的运算,程序会在当前目录下创建一个所谓的adeptkey.der的文件。这个就是和你电脑相匹配的DRM密钥文件。
    4. 第3步的运行中可能会出现python运行时错误,说无法import ctypes中的windll。这个问题我也不知道是怎么回事。目前我怀疑和Vista系统或者Cygwin有关。建议在XP系统下运行。
    5. 运行python aineptepub.pyw。此时会弹出一个对话框,选择原始epub所在的目录,选择解密后epub所在的目录就可以进行解密了!
    6. 提示:为了获得完整的加密的epub文件,你应该先用ADE下载epub。我的过程是通过在Kobo的账户中下载acsm文件,然后在ADE中打开这个acsm文件并下载。下载下来的epub文件存放在你的文档目录下的My Digital Editions中。建议将你需要转换的epub文件先拷贝到一个临时目录并用那个临时目录作为你的输入目录。
    7. 目前我已经转换好了My Spiritual Journey并呈传给肾后御览。

    上面提到的这些文件,可以通过在Google中搜索Remove-ePub-drm-use-python-script.rar而得到。

    最后说一句,版权还是要尊重,但是过分严格的版权限制吗,适当的时候还是可以破一破的。