$passwordFile
=
"passwords.txt"
$outputDirectory
=
"output_pdfs"
$passwords
=
Get-Content
$passwordFile
$pdfFiles
=
Get-ChildItem
-Filter
*.pdf
foreach
(
$pdf
in
$pdfFiles
) {
foreach
(
$password
in
$passwords
) {
try {
qpdf --decrypt
"$password"
"$pdf.tmp"
"$pdf"
Write-Host
"Decrypted $($pdf.Name) with password: $password"
break
} catch {
$pdf
.CopyTo(
"$pdf.tmp"
)
}
}
if
(
Test-Path
"$pdf.tmp"
) {
qpdf --encrypt
"$passwords[0]"
"$pdf.tmp"
"$pdf"
Write-Host
"Encrypted $($pdf.Name) with password: $($passwords[0])"
Remove-Item
"$pdf.tmp"
}
else
{
Write-Host
"Decrypted $($pdf.Name)"
}
}