Kindle 上的开源阅读器:Koreader
我们希望在我们的阅读设备上能够享受这些自由:
- 数字内容不被局限于特定厂商的专有系统的自由。
- 用户可以获得阅读器软件运行细节,保障数字内容不被非法窥探的自由。
- 用户修改阅读器软件外观和功能的自由。
Koreader 正是让我们获得这些自由的一个尝试。Koreader 在 GPLv3 协议下发布,支持开放文档格式 PDF、DJVU、EPUB,个人文档转化为这些开放格式后不会因为特定厂商的消失而使文档失效;任何有兴趣了解 Koreader 运行细节的人都可以 拿来研究并修改、添加自己想要的功能。
Koreader 项目来源于 Kindlepdfviewer,并重写了 Kindlepdfviewer 界面层的大部分代码,使模块化程度更高。理论上 Koreader 能够运行在所有基于 Linux 的阅读设备上。如果你想要移植 Koreader 到其他阅读器上的话,请参考项目的 Wiki 页面:如何移植 Koreader 到其他系统。
Feature List
机型支持:
Kindle Touch、Kindle PaperWhite (K3,DXG,K4 的支持还在完善中)
格式支持:
PDF, DJVU, EPUB, HTML, MOBI, TXT, ZIP, CBZ, FB2, RTF, XPS, CHM, DOC
功能支持:
见参考[4]。
Architecture
Koreader 底层的文档解析和渲染使用了优秀而且成熟的开源实现:
- PDF 文档的解析渲染使用小巧快速、低内存占用的 MuPDF。
- DJVU 文档的解析渲染使用了 DJVU 格式的开源实现 DjVuLibre。
- EPUB 和其他标记文档使用 CoolReader 的渲染引擎 CREngine。
- 使用 K2pdfopt 来优化 PDF/DJVU 文档在小屏幕设备上的排版。效果见这里。
- 其他开源库如 luafilesystem, popen_nonshell 以及 freetype 等等。
Koreader 界面层和逻辑层使用嵌入式脚本语言 Lua 编写,运行时通过 LuaJIT 即时编译为机器码来提升运行效率。KOReader 自带一套超轻量级的GUI框架,可直接运行在支持桢缓存(FrameBuffer)设备的阅读器上,也可以通过 SDL 获得跨平台的运行支持。 Koreader 自带一个设备模拟器,方便开发者在桌面系统进行开发。有关开发的详情请参考项目 Wiki 和 README。
转自:LinuxToy
本文由用户 jopen 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
转载本站原创文章,请注明出处,并保留原始链接、图片水印。
本站是一个以用户分享为主的开源技术平台,欢迎各类分享!