Возможно, он не самый эффективный, но вы можете сначала убедиться, что вы можете открывать и читать файлы PDF, используя функцию xdmp:document-filter()
.
Если PDF защищен паролем, он выдаст исключение. Используйте команду try / catch и вставляйте документ только в том случае, если исключений нет.
try {
let $_ := xdmp:document-filter($doc)
return xdmp:document-insert($uri, $doc)
} catch ($exception) {
(: failed to parse the encrypted PDF, don't insert :)
}