You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让MuPDF实现类似Evince的文档自动刷新功能?

实现MuPDF自动刷新修改后的PDF文档

好问题!MuPDF本身确实没有内置像Evince那样的自动刷新功能,官方手册里也没提相关的配置项。不过咱们可以借助一些外部工具来实现类似的效果,下面给你几个可行的方案:

方案一:文件监控脚本+模拟按键输入(Linux适用)

这个方法通过监控PDF文件的修改事件,自动给MuPDF窗口发送r按键指令,模拟手动刷新的操作:

  1. 先安装依赖工具:

    sudo apt install inotify-tools xdotool  # Debian/Ubuntu 系发行版
    # 若是Fedora/RHEL系,用:sudo dnf install inotify-tools xdotool
    
  2. 创建一个自动刷新脚本(比如命名为auto-mupdf-refresh.sh):

    #!/bin/bash
    if [ -z "$1" ]; then
        echo "用法:./auto-mupdf-refresh.sh 你的PDF文件路径"
        exit 1
    fi
    
    PDF_FILE="$1"
    # 启动MuPDF并记录进程ID
    mupdf "$PDF_FILE" &
    MUPDF_PID=$!
    
    # 持续监控文件的写入完成事件
    inotifywait -m -e close_write "$PDF_FILE" | while read -r dir events file; do
        # 找到MuPDF窗口并发送刷新按键`r`
        xdotool search --pid "$MUPDF_PID" key r
    done
    
    # 脚本退出时自动关闭MuPDF进程
    trap "kill $MUPDF_PID" EXIT
    
  3. 给脚本添加执行权限:

    chmod +x auto-mupdf-refresh.sh
    
  4. 使用方式:

    ./auto-mupdf-refresh.sh your-document.pdf
    

方案二:跨平台文件监控工具(支持Linux/macOS)

如果是macOS用户,或者偏好跨平台工具,可以用fswatch替代inotifywait:

  1. 安装fswatch:

    # macOS用Homebrew:brew install fswatch
    # Debian/Ubuntu:sudo apt install fswatch
    
  2. 修改脚本中的监控部分,替换成fswatch的逻辑:

    fswatch -o "$PDF_FILE" | while read -r event; do
        xdotool search --pid "$MUPDF_PID" key r
    done
    

    其余部分和方案一的脚本一致。

补充说明

这些方案本质上都是通过外部工具监控文件变化,再模拟手动刷新操作,因为MuPDF本身并没有提供自动刷新的内置配置或API接口。测试下来,这些方法基本能达到和Evince自动刷新类似的体验,而且脚本可以根据自己的需求调整(比如添加延迟避免频繁刷新)。

内容的提问来源于stack exchange,提问作者Philipp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:38:17