想用 pdf-tools 做主力 pdf 阅读器,但是……

是啊, 想想都繁琐, 一直没用, 不过很多人说体验不错, 不知道是跟什么比较

其实单纯从 pdf 阅读器来说,pdf-tools 的体验肯定不如其它的。但是它强就强在和 emacs 集成,各种行为都可以通过 elisp 来改变。不过目前主力开发者更新不太频繁,主要的痛点比如鼠标选择延迟还没有解决。

其实给 eaf 开发一个poppler插件就可以了,KDE/Gnome的所有pdf浏览器都用的是 poppler 这个库

1 个赞

这样来说,eaf插件体验应该会更好, 绘图到显示流程少了很多开销, 不需要png编码解码和传输了, 鼠标选择可以不经过emacs, 直接处理

比较常用的几个应用: web浏览器, 图片查看, pdf查看, 视频播放, 音乐播放

这些有了之后, 感觉好像一下实现了现代化

现在有这个插件可以直接在 Emacs中安装使用吗? 原来的这个 pdf-tools 使用体验确实不好,速度方面相比较与 mupdf, zathura 等比较,明显感觉反应速度慢。mupdf,evince的速度还是很快的,使用根本感觉不到任何的卡顿。 你说的这个eaf这个插件现在可以安装吗?有没有教程?

我去给家人做饭,吃完晚饭,我尝试写一个 eaf pdf插件

11 个赞

给大佬的执行力跪了。。。向你学习

  1. 需要安装 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代码还有问题,改天移植)

  1. 安装好依赖库以后,同步最新的 eaf:
4 个赞

我先去吃饭,吃饭晚上调渲染细节

牛逼了,厉害了。

为什么要删除???

这个只是一个非常简单的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

2 个赞

感谢,感谢,感谢

这个体验可以和 evince,mupdf相比吗?这两个阅读器感觉反应速度非常迅速。

evince 底层就是用 poppler 开发的

mupdf 这个库估计会快一点,但是这个库只能 C++ 才能写,python要做binding才行。

因为 emacs 的插件本来就很简洁,没有那么多按钮和复杂操作,所以这个插件的性能应该比 evince/mupdf 都要快,因为它很mini, 哈哈哈

1 个赞

无耻的伸手党:期待高亮,书签以及它们和 elisp 代码的交互