我在一个目录中有一些 pdf 文件。在命令中,我如何逐个打开、截取屏幕截图并关闭 pdf 文件(实际上是通过 bash 脚本)?
我认为有一些命令可以打开和关闭像 pdf 这样的文件,但我不知道。
答案1
这是一个简单的编程问题(SMOP),但是由于您希望同时发生两件事(显示.pdf
,截取屏幕截图),所以它不是一行代码。
再读man bash;man kill;man xpdf;man gnome-screenshot;man basename
一遍man bash
。
然后编写一个简单的bash
脚本来做你想做的事情,如下所示./tryit
:
#!/bin/bash
if [[ "$1" = "-d" ]] ; then
shift
set -x
fi
screenshotdir="/tmp/my_screenshots"
[[ -d "$screenshotdir" ]] || mkdir "$screenshotdir"
while [[ "$#" != 0 ]] ; do
# thisone is the one we're processing this time
thisone="$1"
# look at a different one next time
shift
outfile="$( basename -s .pdf "$thisone").png"
# display the file, in the background
xpdf "$thisone" &
# remember the PID
pidofxpdf=$!
# give xpdf time to start
sleep 3
# take the screenshot
gnome-screenshot --file="$screenshotdir/${outfile}"
# kill the xpdf
kill -9 $pidofxpdf
done
exit 0
然后使其可执行
chmod +x ./tryit
最后,生成文件名列表并将其输入到tryit
:
find directory -maxdepth 1 -name '*.pdf' -print0 | xargs -0 -r ./tryit -d
答案2
对于您来说,我会继续将 PDF 直接转换为图像。
安装convert
:
apt-get install imagemagick
对当前目录中的每个 PDF 进行转换:
ls *.pdf | xargs -n1 -I{} convert -density 300 {} {}.jpg