Skip to content
ComPDF
DemoAPI ReferenceFAQ

PDF Generation Template Editor

Open-source visual PDF generation engine with customizable templates and developer-friendly APIs.

View on GitHub

PDF Encryption API

Encrypt a PDF and optionally set permissions.

Feature

The ComPDF Self-hosted accepts files and a request JSON string through multipart/form-data, forwards the parameters to the private PDF SDK, and streams the result file back on success.

Synchronous Request

ItemValue
Authenticationx-api-key: your_api_key_here
Request URLPOST http://localhost:8080/api/v1/process/pdf/encrypt
Content typemultipart/form-data
Success responseResult file stream

Request Parameters

ParameterTypeDescriptionRequired
fileFileSource PDF file.Yes
requestStringJSON string containing the PDF SDK parameters below. If omitted, remaining non-file form-data fields are forwarded as the request object.No

Request Object Parameters

Put the following fields in the request JSON string.

ParameterTypePurpose
userPasswordStringPassword required to open the encrypted PDF.
ownerPasswordStringOwner password used to manage permissions.
permissionsObjectPermission object forwarded to the SDK.
allowPrintBooleanShortcut accepted by the middle layer and moved to permissions.allowPrint.
allowCopyBooleanShortcut accepted by the middle layer and moved to permissions.allowCopy.
allowDocumentChangesBooleanShortcut accepted by the middle layer and moved to permissions.allowDocumentChanges.
allowDocumentAssemblyBooleanShortcut accepted by the middle layer and moved to permissions.allowDocumentAssembly.
allowCommentingBooleanShortcut accepted by the middle layer and moved to permissions.allowCommenting.
allowFormFieldEntryBooleanShortcut accepted by the middle layer and moved to permissions.allowFormFieldEntry.
outputFileNameStringOptional output filename. When present, it is used as the preferred download filename.

Request Example

bash
curl -X POST "http://localhost:8080/api/v1/process/pdf/encrypt" \
  -H "x-api-key: your_api_key_here" \
  -F "[email protected]" \
  -F 'request={"userPassword":"user-pass","ownerPassword":"owner-pass","permissions":"","allowPrint":"","allowCopy":""}'

Response

On success, the API returns the processed file stream with Content-Type and Content-Disposition headers. On failure, ComPDF Self-hosted returns the normalized error response described in Definition of Error Codes, including type, code, errorCode, message, and traceId.