![在 Ranger 预览的 cli 上将 html 文件转为图片](https://linux22.com/image/199859/%E5%9C%A8%20Ranger%20%E9%A2%84%E8%A7%88%E7%9A%84%20cli%20%E4%B8%8A%E5%B0%86%20html%20%E6%96%87%E4%BB%B6%E8%BD%AC%E4%B8%BA%E5%9B%BE%E7%89%87.png)
我想预览 html 文件护林员与图片类似,如何预览 pdf 文件。我想首先需要将其强制转换为 A4 页面或类似的内容,因此它是打开它时屏幕上显示的内容的预览。我可能可以设置一个 html -> pdf -> picture 的管道,但我希望有一个工具可以直接执行此操作(这样可以减少两次转换的开销)。有人知道这样的事情,或者有一个优雅的解决方案吗?
答案1
引用文档关于图像预览:
在 Ranger 的最新版本中,图像预览的机制得到了扩展和通用化。调用scope.sh时,ranger会设置$cached环境变量,其中包含一个文件的唯一路径,如果需要,可以在该文件中生成图像预览。然后,scope.sh 可以将图像保存到该路径并以退出代码 6 退出(记录在scope.sh 中,请参阅顶部的注释)以告诉 ranger 使用它。
换句话说,如果您可以从文件生成 jpg,ranger 就可以显示它的图形预览。视频、PDF、各种文件。
所以,编辑你的~/.config/ranger/scope.sh
;添加一个handle_image
函数的情况:
case "${mimetype}" in
…
text/html)
wkhtmltoimage -f png "${FILE_PATH}" "${IMAGE_CACHE_PATH}" && exit 6
您当然必须安装wkhtmltoimage
(通常位于名为 的包中wkhtmltopdf
)。
不过还没有尝试过这个。可能需要删除-f png
,或者如果不起作用则更-f png
改为。-f jpeg
如果这确实有效:做一个酷公民,叉github 上的 ranger,编辑 ranger/data/scope.sh 模板以包含您的添加内容,然后针对上游 ranger 打开拉取请求,以便其他人也获得您的 HTML 预览器! (虽然我的代码不够复杂,不足以真正保证需要这个:你有完全的权利做搞什么鬼你想要这个答案中的代码)