是否可以使用ghostscript检查pdf是否受密码保护? 什么是命令? 我知道你可以使用ghostscript删除pdf密码, 但我想做的只是检查PDF是否受密码保护或启用安全性。
答案 0 :(得分:5)
checkuserpasswdPDF.sh
:
#!/bin/sh
GS=~/gs/bin/gs
output=`$GS -dBATCH -sNODISPLAY "$1" 2>&1`
gsexit=$?
if [ "$gsexit" == "0" ]; then
echo "Not user-password protected"
exit 0;
else
found=`echo "$output" |grep -o "This file requires a password"`
if [ -z "$found" ]; then
echo "Failed to invoke gs"
exit $gsexit
else
echo "Protected"
exit 0;
fi
fi
检查受用户密码保护的PDF:checkuserpasswdPDF.sh test.pdf
。
GS忽略所有者密码(请参阅this)。
答案 1 :(得分:2)
使用pdftk
,只需尝试执行dump_data
操作即可检测用户密码或所有者密码。
protected=0
pdftk "input.pdf" dump_data output /dev/null dont_ask || protected=1
这里的问题是你不知道密码阻止了什么:读取,提取数据,修改......?
答案 2 :(得分:2)
使用bat文件,您可以通过搜索"加密"来做一些解决方法。在pdfs中。它可以快速搜索许多文件。
Findstr /M /I "Encrypt" *.pdf
这将返回所有受保护的文件名(因为"加密"将在dos读取时写入文件中)
也许这是某人可以使用的东西。
我用:
for /f %%a in ('Findstr /M /I "Encrypt" *.pdf') do move %%a c:\tempfiles\
将所有受保护的pdf移至c:\ tempfiles。从那里我使用ghostscript删除安全性,并将其移回原始文件夹。
答案 3 :(得分:0)
您可以使用pdfinfo
pdfinfo $filename &>/dev/null;
if [[ $? -eq 1 ]] ; then
echo "File can not be opened for reading"
fi