PowerShell Requires Chilkat v11.7.0+
PowerShell
Remove the Password and Encryption from a PDF
See more PDF Protection Examples
Demonstrates the removeEncryption operation, which saves the PDF with no encryption at all: no password, no restrictions. It needs owner rights, so the PDF is loaded with its owner password. As with every Protection operation, the change is applied when the file is written.Chilkat PowerShell Downloads
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"
$success = $false
# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
# The PDF used in this example is available at encrypted_user_password.pdf
$pdf = New-Object Chilkat.Pdf
# Removing the encryption needs owner rights: load with the owner password.
$pdf.OwnerPassword = "owner-secret"
$success = $pdf.LoadFile("qa_data/pdf/encrypted_user_password.pdf")
if ($success -eq $false) {
$($pdf.LastErrorText)
exit
}
$json = New-Object Chilkat.JsonObject
$jsonOut = New-Object Chilkat.JsonObject
$success = $pdf.Protection("getInfo",$json,$jsonOut)
if ($success -eq $false) {
$($pdf.LastErrorText)
exit
}
$("encrypted, as loaded: " + $jsonOut.BoolOf("loaded.encrypted"))
$("algorithm: " + $jsonOut.StringOf("loaded.algorithm"))
$success = $pdf.Protection("removeEncryption",$json,$jsonOut)
if ($success -eq $false) {
$($pdf.LastErrorText)
exit
}
$("will be saved encrypted: " + $jsonOut.BoolOf("pending.encrypted"))
$success = $pdf.WriteFile("qa_output/minutes_unprotected.pdf")
if ($success -eq $false) {
$($pdf.LastErrorText)
exit
}
# The result is an ordinary PDF that opens without a password.
$reader = New-Object Chilkat.Pdf
$info = New-Object Chilkat.JsonObject
$success = $reader.PreLoadCheck("qa_output/minutes_unprotected.pdf",$info)
if ($success -eq $false) {
$($reader.LastErrorText)
exit
}
$("encrypted: " + $info.BoolOf("encrypted"))
$success = $reader.LoadFile("qa_output/minutes_unprotected.pdf")
if ($success -eq $false) {
$($reader.LastErrorText)
exit
}
$("pages: " + $reader.NumPages)
# Sample output:
# encrypted, as loaded: True
# algorithm: rc4-128
# will be saved encrypted: False
# encrypted: False
# pages: 1