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 Compression API

Compress and optimize a PDF.

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/compress
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
profileStringCompression preset selector used by the middle layer. aggressive derives optimizeFlags from imageQuality when optimizeFlags is absent.
optimizeFlagsString[]Optimization actions. Presets may include flags such as RMEMBFONT, RMANNOT, RMDOCINFO, and RMMEDTADATA.
imageQualityNumberCompression image quality from 0 to 100. Presets use 30, 60, or 80.
colorImageUpperPpiNumberColor image maximum PPI.
colorImageTargetPpiNumberColor image target PPI.
colorImageCompressAlgorithmStringColor image compression algorithm, such as jpeg or flate.
colorImageQualityNumberColor image quality from 0 to 100.
grayscaleImageUpperPpiNumberGrayscale image maximum PPI.
grayscaleImageTargetPpiNumberGrayscale image target PPI.
monochromeImageUpperPpiNumberMonochrome image maximum PPI.
monochromeImageTargetPpiNumberMonochrome image target PPI.
monochromeImageCompressAlgorithmStringMonochrome image compression algorithm, such as jbig2 or flate.
passwordStringSource PDF open password. Some routes remove it before forwarding when the SDK endpoint does not accept it directly.
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/compress" \
  -H "x-api-key: your_api_key_here" \
  -F "[email protected]" \
  -F 'request={"profile":"aggressive","optimizeFlags":"","imageQuality":60,"colorImageUpperPpi":"","colorImageTargetPpi":""}'

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.