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

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

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

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

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

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

10 个赞

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

  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 代码的交互

这个慢慢来吧,你快点学 PyQt5, 我只是搭好框架,主要精力在核心框架上。

插件的细节希望社区的大神发威,帮助大家成长和获得成就感。

史上最简单的开发者手册:https://github.com/manateelazycat/emacs-application-framework/blob/master/HACKING.md

PyQt5 最好的教程: http://zetcode.com/gui/pyqt5/

8 个赞

下载安装了后,启动不起来,可能是哪里依赖有问题:(

看我github主页readme,poppler要从git安装