5 分钟装好电纸书:KOReader 让扫描版 PDF 重排成大字流文本,还能干啥?
【免费下载链接】koreaderAn ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices项目地址: https://gitcode.com/GitHub_Trending/ko/koreader
电纸书上打开扫描版 PDF,字挤成蚂蚁,眯眼也认不全一行。KOReader 就是干这个的:一款开源电子书阅读器,把扫描件做 PDF 重排,变成字号随你调的流动文本,Kindle、Kobo、PocketBook、reMarkable、Android 都能跑。装它的人分两种,一种是想榨干手边电纸书的,一种是被小字扫描件折磨到想换书源的。
扫描版 PDF 能变成大字吗?KOReader 的 PDF 重排是怎么回事
能,而且这是 KOReader 在电纸书圈里最能打的招牌。原理并不玄:它内置了 K2pdfopt 引擎,流程分三步——先识别原页的版式,判断哪里是正文、哪里是图片;再把文字提取出来;最后按你定的字号、字体、行距,把内容重新排成一段段连续流动的文本。重排完,扫描件就从"一页看几行"变成一本可以随你调整版面的正常书。
排版细节也都能自己捏:字号、页边距、行距可以脱离文档原始值单独设置,断行处可以开连字符,字体则能用你拷进设备的任何字体文件——加载逻辑在frontend/ui/font.lua,排版选项集中在frontend/apps/reader/modules/readertypography.lua。
固定版式的文档也别硬掰。漫画、双栏这类页面有专门的阅读模式,比如按双页翻、按条漫纵向读,比强行拉伸版式舒服得多。真机上翻几十页的体感是:翻页干脆,和系统自带阅读器不是一个流畅度量级。
KOReader 安装不复杂:先查设备,一炷香装好电纸书
动手前先花一分钟对暗号,能省掉"下载半天发现装不上"的窝火。看仓库里的 frontend/device/ 目录:每个子目录就是一类受支持的电纸书平台,kindle、kobo、pocketbook、remarkable、android、sdl都在。具体机型官方有没有做过构建,再翻make/目录里的编译目标文件确认,kindle.mk、kobov4.mk、pocketbook.mk各管各的机型。
| 设备类型 | 入口脚本 | 在哪确认适配 |
|---|---|---|
| Kindle | koreader.sh | platform/kindle/ 下启动脚本 |
| Kobo(分 v4/v5) | koreader.sh | platform/kobo/ 下启动脚本 |
| PocketBook | koreader.app | platform/pocketbook/ 下应用文件 |
| reMarkable | koreader.sh+ systemd 服务 | platform/remarkable/ 下的服务文件 |
| Android | 直接装 APK | platform/android/ |
| Linux / 桌面 | 桌面包或模拟器 | platform/linux/ 及 doc/Building.md |
安装本身就四步:
- 按上面那张表,下载对应平台、对应机型的发行包,别贪多只拿一个。
- 把启动文件拷到设备约定位置:Kobo 一般是
/mnt/us,Kindle 按包内说明放/usr或设备根。 - 从设备启动入口运行
koreader.sh;Kobo 用户会在系统桌面直接多出一个 KOReader 图标,点它就行。 - Android 装 APK 一步到位,Linux 用桌面发行包。
验证很简单:屏幕停在 KOReader 自己的界面上,而不是弹回系统菜单,就成了。最常见的翻车只有一个——平台包拿错,比如给 v4 代 Kobo 装了 v5 的包、给老固件 Kindle 装新固件的包,症状都是闪退。回上面那张表对一遍就解决。
第一次开机,屏幕往哪点?
上图就是全部答案:屏幕中央是大块翻页区,点一下进下一页;左缘那条窄区管回退;上缘弹顶部菜单;下缘是底部菜单和状态栏,反复点还能在状态项之间切换;四个角各自独立,对角两角同时按下还能截屏。这套布局对没有实体按键的电纸书很友好,手指落在哪,动作就在哪。
带物理键盘的机型,按键默认行为定义在frontend/device/kindle/event_map_keyboard.lua这类映射文件里,进设置就能逐项改成自己的习惯。更省事的办法:第一次启动时 KOReader 会自动生成一份内置快速入门指南,触摸区、手势、快捷键全在里面,照着点一遍就行,比任何外部教程都贴合你手上的设备。
不接电脑,书从哪来?
装好之后第一个问题:书怎么上设备?答案藏在plugins/目录的插件系统里。所有扩展都是 Lua 写的,一个插件一个文件夹,_meta.lua声明名字和描述,main.lua是入口,整个文件夹放进plugins/就自动加载,不用重启、不用编译。开箱自带三十来个,高频的几个:
| 插件 | 用途 | 目录 |
|---|---|---|
| cloudstorage | 挂载 Dropbox、WebDAV、FTP 云盘 | plugins/cloudstorage.koplugin/ |
| newsdownloader | 订阅并下载 RSS 源 | plugins/newsdownloader.koplugin/ |
| calibre | 无线收书、OPDS 浏览 Calibre 书库 | plugins/calibre.koplugin/ |
| opds | 浏览任意 OPDS 在线目录 | plugins/opds.koplugin/ |
| vocabbuilder | 阅读时自动收集生词 | plugins/vocabbuilder.koplugin/ |
| systemstat | 看电池、内存等系统状态 | plugins/systemstat.koplugin/ |
想自己写一个?拿 plugins/hello.koplugin/ 当模板最省事,官方留的调试小插件,总共几十行:建个带_meta.lua和main.lua的文件夹,在addToMainMenu里注册一个菜单项,点击弹个提示框,整条链路就通了。加载器的逻辑全在 frontend/pluginloader.lua,读一遍源码比翻十篇教程快。
设置都藏在哪?出问题了去哪找?
改完设置想回退,得知道东西落在哪。KOReader 的设置分三层,各管一摊:
- 设备级:
frontend/luasettings.lua背后的全局设置,字号、语言、翻页方式都在这层。 - 文档级:
frontend/docsettings.lua记住"这一本"的字体、进度、高亮,换本书自动切回去,不会串味。 - 路径层:
datastorage.lua负责定位设备上的数据目录,插件数据库、缓存全挂在它下面。
想调触摸手势,入口是frontend/device/gesturedetector.lua;想查某个行为到底怎么实现的,直接去 spec/unit/ 翻对应的*_spec.lua单元测试,测试名基本就是功能名,是仓库里最诚实的一份"活文档"。
常见坑速查
| 症状 | 怎么办 |
|---|---|
| 启动就闪退 | 九成是发行包的平台或机型代次拿错了,对着第一节的设备表重新下载 |
| 文档打不开 | 先确认格式在支持列表内:PDF、DjVu、EPUB、FB2、Mobi 等都行,冷门格式查 doc/ 里的说明 |
| 重排没效果 | K2pdfopt 只对能识别出文字的扫描件有效,纯图片无文字层时,得先在外面跑一遍 OCR |
| 插件不出现 | 检查目录名是不是xxx.koplugin,里面_meta.lua和main.lua齐不齐 |
| Kobo 桌面没图标 | 启动文件没拷到/mnt/us,或者装错了 v4/v5 的包 |
【免费下载链接】koreaderAn ebook reader application supporting PDF, DjVu, EPUB, FB2 and many more formats, running on Cervantes, Kindle, Kobo, PocketBook and Android devices项目地址: https://gitcode.com/GitHub_Trending/ko/koreader
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考