use mupdf to read epub and use css set epub font

缘来

最近用手机太多,眼睛不舒服,于是拿起前期买的墨水屏阅读器,准备用起来,先是来看下小说,看看习惯后再过度到其它书籍,期间使用情况记录一下。


获取电子书

目前电子书主要是 txt 、mobi 、epub 等格式的。txt没有格式,看起来不是那么舒服,所以下载后会转成其它格式使用。mobi 是私有格式,而亚马逊已经在2023年6月30日停止Kindle电子书店的运营了,在试用部分软件过程中,发现个别打开 mobi 的会出现卡顿,所以尽量不考虑,只有 mobi 格式的也尽量转换成其它格式使用。

最终考虑的是使用开源的 epub 格式书籍。

格式转换

目前功能最强的软件是 calibre ,可以组织、管理、阅读各类电子书籍,大而全,其它软件解决不了问题时考虑使用。

kaf-cli

从网上找到了一个软件 kaf-cli,可以把 txt 文本转成 epub 和 mobi 电子书的命令行工具。GitHub - ystyle/kaf-cli ,自动识别章节、生成目录,还有很多细节的设置,比较方便。

如果只是在墨水屏阅读器上使用,则转换生成的电子书直接导入阅读器即可。

linux 下 EPUB 阅读软件 - mupdf

近期都是使用 linux 系统,windows 已经沦为备用,所以还是要找到合适的 linux 下 epub 阅读软件。但是找了很多,都没有符合我心意的,要么大而全,要么使用不方便,而且很多都是 js 或者 python 写的,性能和占用不太爽。

最终找到了 mupdf ,是一个用 C 语言写的开源阅读器,可以支持 PDF 、XPS、EPUB 格式阅读,速度很快,占用也低,缺点就是设置需要命令行或者快捷键,使用入门门槛高。

mupdf 命令行参数
usage: mupdf [options] file.pdf [page]
        -p -    password
        -r -    resolution
        -A -    set anti-aliasing quality in bits (0=off, 8=best)
        -C -    RRGGBB (tint color in hexadecimal syntax)
        -W -    page width for EPUB layout
        -H -    page height for EPUB layout
        -I -    invert colors
        -S -    font size for EPUB layout
        -U -    user style sheet for EPUB layout
        -X      disable document styles for EPUB layout
mupdf 快捷键
快捷键 功能
f 切换全屏
w 调整窗口来适配阅读页面
W 调整页面宽度适配窗口
A 开启或关闭抗锯齿
[number]z 按照DPI设置缩放比例
+ 放大
- 缩小
[ 逆时针旋转
] 顺时针旋转
空格、PageDown、↓、>、j 向后翻页
b、PageUp、↑、<、k 向前翻页
[number]g 跳转至[number]页
/ 向前搜索
? 先后搜索
n 继续向前搜索
N 继续向后搜索

基本上以上的快捷键,足够日常使用了。

css 设置 EPUB 字体

mupdf 设置字体稍微麻烦点,也是要通过命令行参数解决。通过 “-U” 参数指定外部 css 文件进行设置。

@font-face {
    font-family: 'HYQiHei 55S';
    font-weight: normal;
    font-style: normal;
    src:url(/etc/mupdf/HYQiHei.ttf) format('turetype');
}

html, body {
    font-family: "HYQiHei 55S";
    font-size: 16pt;
    /* 文字:墨绿色 #414c41 rgb(65,76,65) 背景色:箬竹色 #b5eecd rgb(181,238,205) */
    /* 文字:墨绿色 #494c49 rgb(73,76,73) 背景色:赭石色 #d5c6ac rgb(213,198,172) */
    color: rgb(65,76,65);
    background-color: rgb(181,238,205);
}

我这里使用的是汉仪旗黑字体,放置在了 /etc/mupdf/ 目录下,字体大小、颜色、背景色也有所调整。

至此,从 txt 文件转成 epub ,用 mupdf 打开 epub 文件,并通过 css 设置 epub 文件的字体和背景等都已解决,可以开心的在电脑和墨水屏阅读器上看书啦~