यदि आप एक बेहतर समाधान खोजने का प्रबंधन नहीं करते हैं, तो आप इस स्क्रिप्ट को आज़मा सकते हैं:
#!/bin/bash
# NAME: pdfwalker
# AUTHOR: (c) 2014 Glutanimate <https://github.com/Glutanimate/>
# DESCRIPTION: Invoke one pdf file at a time
# DEPENDENCIES: mupdf
# LICENSE: GNU GPLv3 (http://www.gnu.de/documents/gpl-3.0.en.html)
############# Functions ###############
gui_notify(){
notify-send -i application-pdf "PDF Walker" "$1"
echo "$1"
}
arg_compose_filearray(){
# recursively add pdf files and folders in given arguments to array
unset Files
FileCountCurrent="1"
while IFS= read -r -d $'\0' File; do
if [[ ! "$(file -ib "$File")" == *application/pdf* ]]
then
echo "Error: '$File' is not a pdf file. Ignoring."
continue
fi
Files[FileCountCurrent++]="$File"
done < <(find "$@" -type f -name '*.pdf' -print0 | sort -z --version-sort)
FileCountTotal="${#Files[@]}"
}
arg_check(){
if [[ "$FileCountTotal" = "0" ]]; then
gui_notify "ERROR: No PDF files found."
echo "Exiting..."
exit 1
fi
}
############## Checks #################
arg_compose_filearray "$@"
arg_check
################ Main #################
FileCountCurrent="1"
for File in "${Files[@]}"; do
echo "Opening file $FileCountCurrent of $FileCountTotal:"
echo "$File"
mupdf "$File" > /dev/null 2>&1
((FileCountCurrent++))
done
echo "Done."
स्थापना
ऊपर एक नई खाली पाठ फ़ाइल में कोड बॉक्स की सामग्री को कॉपी और पेस्ट करें, इसे सहेजें, और अपने फ़ाइल प्रबंधक के गुण मेनू के माध्यम से स्क्रिप्ट को निष्पादन योग्य के रूप में चिह्नित करें।
सभी निर्भरताएँ स्थापित करना सुनिश्चित करें:
sudo apt-get install mupdf
प्रयोग
pdfwalker <pdf files or directories>
उदाहरण के लिए:
pdfwalker "~/Downloads/PDF" "~/Documents/Scans"
स्क्रिप्ट पुन: चयनित निर्देशिकाओं में सभी पीडीएफ फाइलों को खोजेगी और उन्हें एक के बाद एक खोल देगी mupdf
। अगली फ़ाइल को लाइन में बदलने के लिए, बस वर्तमान mupdf
विंडो बंद करें ( Q)। यदि आप स्क्रिप्ट से पूरी तरह से बाहर निकलना चाहते हैं, तो आप इसे टर्मिनल से CTRL+ के माध्यम से समाप्त कर सकते हैं C।