其实我只想要一个非常简单的PDF阅读器,不要很花哨的功能,只要能够:
- 速度够快,不要翻一页等半天;
- 全键盘操作,不想在鼠标和键盘之间来回倒腾;
- 可以改变背景色,深夜的白光好刺眼;
- 自由旋转页面,有些PDF的页面简直是太斜了;
用过PDF Expert、PDF Reader、Skim……,发现这些个玩意还没有系统自带的Preview好用。轮子不够,看来只能自己造了,谁叫咱是码农呢😄
最接近我需求的是Mupdf,但是这货问题太多而且需要XQuartz的支持,要X11支持也就算了, 竟然还不能全屏 ,这意味着EI Capitan的Splitview
也无法使用。
去除X11的依赖,用Cocoa窗口
好在mupdf源代码支持多平台,可以用OpenGL,而OpenGL与Cocoa结合很紧密,所以工程的关键是让mupdf用glfw来建立窗口,具体步骤我在Github上说了很多,这里就不啰嗦
修改Bug,增加快捷键操作,添加功能
这开源代码的Bug就是多啊,不过不要紧,谁叫咱是码农呢?修改的几个主要问题在Github上我也提到了,咱说如何使用吧
命令行打开,键盘阅读
打开文件的正确方式是在终端中运行如下操作:
mupdf-gl filename.pdf <page>
干嘛不来一个Bundle App?再设计一个菜单,从菜单中选择打开文件,最好再搞一个Command+O之类的快捷键,再整合到Findle的右键菜单……
等等,咱是码农,对吧?码农打开文件的正确方式难道不是在终端中输入命令的吗?
运指如飞
Vim 常用键大部分都有,我又整合进去了一部分
h,j,k,l
,你懂的
空格键,d,u,b
当然是上下翻页了
+,-
放大缩小
x,y
进行左右或上下裁边,如果裁多了,按大写X,Y
缩小裁边区域
w,W,H
自适应宽度和高度
q
一键退出,别乱按
m,t
书签跳转
g
前面加一个数字就是跳转到指定页面
[,]
左右旋转,微调不正的页面,这个太有用了
v
反转颜色
还有好多,你自己摸索下😊
背景色任意换
由于是采用OpenGL绘图,换一个背景色那是相当的Easy!启动的时候指定RGB就行
mupdf-gl -C 0xFDF6E3 filename.pdf
mupdf-gl -C 0x00F600 filename.pdf
源代码
想自己编译的可以在Github下载,最新的代码都在 https://github.com/dean-wong/Cocoa-mupdf ,有空就帮忙点一个Star吧_