是啊, 想想都繁琐, 一直没用, 不过很多人说体验不错, 不知道是跟什么比较
其实单纯从 pdf 阅读器来说,pdf-tools 的体验肯定不如其它的。但是它强就强在和 emacs 集成,各种行为都可以通过 elisp 来改变。不过目前主力开发者更新不太频繁,主要的痛点比如鼠标选择延迟还没有解决。
其实给 eaf 开发一个poppler插件就可以了,KDE/Gnome的所有pdf浏览器都用的是 poppler 这个库
这样来说,eaf插件体验应该会更好, 绘图到显示流程少了很多开销, 不需要png编码解码和传输了, 鼠标选择可以不经过emacs, 直接处理
比较常用的几个应用: web浏览器, 图片查看, pdf查看, 视频播放, 音乐播放
这些有了之后, 感觉好像一下实现了现代化
现在有这个插件可以直接在 Emacs中安装使用吗? 原来的这个 pdf-tools 使用体验确实不好,速度方面相比较与 mupdf, zathura 等比较,明显感觉反应速度慢。mupdf,evince的速度还是很快的,使用根本感觉不到任何的卡顿。 你说的这个eaf这个插件现在可以安装吗?有没有教程?
我去给家人做饭,吃完晚饭,我尝试写一个 eaf pdf插件
给大佬的执行力跪了。。。向你学习
- 需要安装 python-poppler-qt5 , 这个库 pip 仓库有问题,需要从git上面安装,安装依赖:
-
sudo pacman -S python-xlib python-pyqt5 python-pymediainfo
-
sudo pip install git+https://github.com/wbsoft/python-poppler-qt5.git
不要从 pip 安装 pyqt5, 那里面没有 QtWebkit (QtWebEngine代码还有问题,改天移植)
- 安装好依赖库以后,同步最新的 eaf:
-
加载eaf.el 以后,执行
-
eaf-open pdf_file.pdf
就可以看到效果了,性能非常快,但是页面大小和一些小细节还要调整。
我先去吃饭,吃饭晚上调渲染细节
牛逼了,厉害了。
为什么要删除???
这个只是一个非常简单的demo, 你们可以先体验一下性能,等我带小孩和小狗出去遛弯,遛弯回来晚上睡觉之前就可以写一个完美的 pdf 阅读器
牛逼,王勇,我见过你,你来过我们学校好几次。
代码写完了,正常上传
我用 poppler 这个库重写了一版 PdfViewerWidget, 更新以后,直接 eaf-open 输入 pdf 文件路径就可以查看了 打开以后:
- j 向上滚动
- k 向下滚动
- space 向上滚动一屏幕
- b 向下滚动用屏幕
- t 切换显示模式
- 逗号:最后一页
- 句号:第一页
- 减号: 缩小页面
- 等号: 放大页面
- 0: 恢复当前模式页面
特性:
- 不管多大的pdf文件都秒开,因为永远都只读取第一页数据,后续浏览的时候动态渲染pdf的页面
- 因为不用和emacs的窗口交互,所以浏览性能非常高,不会出现因为emacs渲染性能不足带来的卡顿问题
PDF 浏览器效果请看:https://github.com/manateelazycat/emacs-application-framework/blob/master/screenshot/pdf_viewer.gif
感谢,感谢,感谢
这个体验可以和 evince,mupdf相比吗?这两个阅读器感觉反应速度非常迅速。
evince 底层就是用 poppler 开发的
mupdf 这个库估计会快一点,但是这个库只能 C++ 才能写,python要做binding才行。
因为 emacs 的插件本来就很简洁,没有那么多按钮和复杂操作,所以这个插件的性能应该比 evince/mupdf 都要快,因为它很mini, 哈哈哈
无耻的伸手党:期待高亮,书签以及它们和 elisp 代码的交互