AutoIt
AutoIt
PDF Get Encryption and Permissions Information
See more PDF Signatures Examples
Determine if a PDF is encrypted, and the associated user permissions.Note: Some PDFs are encrypted but not password-protected. In such cases, encryption is used primarily for preventing unauthorized modifications to the document, but it doesn't restrict access. Therefore, you can open and read the document without a password.
Chilkat AutoIt Downloads
Local $bSuccess = False
; This example requires the Chilkat API to have been previously unlocked.
; See Global Unlock Sample for sample code.
$oPdf = ObjCreate("Chilkat.Pdf")
; Load a PDF.
$bSuccess = $oPdf.LoadFile("c:/someDir/sample.pdf")
If ($bSuccess = False) Then
ConsoleWrite($oPdf.LastErrorText & @CRLF)
Exit
EndIf
; Get information about the PDF that was collected in the call to LoadFile.
$oLjd = ObjCreate("Chilkat.JsonObject")
$oPdf.GetLastJsonData $oLjd
$oLjd.EmitCompact = False
ConsoleWrite($oLjd.Emit() & @CRLF)
; Sample output:
; {
; "pdfVersion": "1.6",
; "encrypt": {
; "filter": "/Standard",
; "keyLength": 128,
; "V": 4,
; "R": 4,
; "P": -1340,
; "perm": {
; "printLowResolution": "allowed",
; "printHighResolution": "allowed",
; "modifyOther": "not allowed",
; "modifyAnnotations": "allowed",
; "modifyForms": "not allowed",
; "fillInForms": "allowed",
; "assembleDoc": "allowed",
; "extractAnyPurpose": "not allowed",
; "extractAccessibility": "not allowed"
; },
; "method": "AESV2"
; }
; }
; Use this online tool to generate parsing code from sample JSON:
; Generate Parsing Code from JSON
Local $sPdfVersion = $oLjd.StringOf("pdfVersion")
Local $sFilter = $oLjd.StringOf("encrypt.filter")
Local $iKeyLength = $oLjd.IntOf("encrypt.keyLength")
Local $iV = $oLjd.IntOf("encrypt.V")
Local $iR = $oLjd.IntOf("encrypt.R")
Local $iP = $oLjd.IntOf("encrypt.P")
Local $sPrintLowResolution = $oLjd.StringOf("encrypt.perm.printLowResolution")
Local $sPrintHighResolution = $oLjd.StringOf("encrypt.perm.printHighResolution")
Local $sModifyOther = $oLjd.StringOf("encrypt.perm.modifyOther")
Local $sModifyAnnotations = $oLjd.StringOf("encrypt.perm.modifyAnnotations")
Local $sModifyForms = $oLjd.StringOf("encrypt.perm.modifyForms")
Local $sFillInForms = $oLjd.StringOf("encrypt.perm.fillInForms")
Local $sAssembleDoc = $oLjd.StringOf("encrypt.perm.assembleDoc")
Local $sExtractAnyPurpose = $oLjd.StringOf("encrypt.perm.extractAnyPurpose")
Local $sExtractAccessibility = $oLjd.StringOf("encrypt.perm.extractAccessibility")
Local $sMethod = $oLjd.StringOf("encrypt.method")