某些 PDF 文件中设置了一些标志,不允许将内容复制到剪贴板。打印和其他一些操作也可以被禁止。通常可以使用qpdf -decrypt
命令轻松删除该限制。
我想要的是检查 PDF 是否受到限制,而不应用解密操作(并且没有实际打开它并尝试复制某些内容),以便我可以运行脚本来查找特定文件系统下的所有受限制文件。
Poppler提供了一个pdfinfo
工具,可用于确定任何给定 PDF 中的活动保护。受限 PDF 已启用加密,并且pdfinfo
将输出(除其他外)一行指示:
Encrypted: yes (print:no copy:no change:no addNotes:no algorithm:RC4)
Run Code Online (Sandbox Code Playgroud)
所以像
pdfinfo yourpdf.pdf | grep -q 'Encrypted:.*yes \(.*copy:no.*\)'
Run Code Online (Sandbox Code Playgroud)
仅当 PDF 不允许复制时才会成功。