我的应用程序生成 pdf 文件并写入某个文件夹。是否有任何设置可以在生成时自动打开它?
答案1
有些应用程序可以打开刚创建的文件,但如果没有:
假设您的临时目录是一个“平面”目录(没有.pdf
子目录中的文件)不包含数千个文件(因为它是一个temp
目录),那么小型后台脚本将完成这项工作。
它监视目录并打开新的 .pdf
使用默认应用程序打开pdf
文件。
如何使用:
- 将以下脚本复制到一个空文件中,并将其另存为
open_newpdf.py
- 在脚本的头部,设置目录的路径
从终端窗口测试运行它,输入命令:
python3 /path/to/open_newpdf.py
.pdf
在您的目录中创建一个新文件,它应该在 3 秒内打开。如果一切正常,请将其添加到启动应用程序中:Dash > 启动应用程序 > 添加
剧本
#!/usr/bin/env python3
import os
import time
import subprocess
#--- set the absolute path to your directory below
dr = "/home/jacob/Bureaublad/test"
#---
ls1 = os.listdir(dr)
while True:
time.sleep(3)
ls2 = os.listdir(dr)
for item in ls2:
if all([not item in ls1, item.endswith(".pdf")]):
subprocess.Popen(["xdg-open", dr+"/"+item])
ls1 = ls2
答案2
创建包装脚本watch_pdf
:
#!/bin/bash
FILE="$1"
if [ "${FILE##*.}" = "pdf" ]
then
echo "$2/$1"
xdg-open "$2/$1"
fi
exit 0
使其可执行:
chmod +x <path_of_watch_pdf>
查看你的文件夹:
inoticoming <your_tmp_folder> <path_of_watch_pdf> {} <your_tmp_folder> \;
答案3
还有一种更简单的替代方法。如果您有一个生成 PDF 文件的脚本,那么您还可以让它在每次创建名为 的 PDF 文件时运行以下命令file.pdf
,
xdg-open file.pdf
这将使用设置为处理 PDF 文件的默认应用程序打开该文件。