Binabawasan ng I-compress ang PDF ang laki ng file ng mga PDF na dokumento habang pinapanatili ang mas mataas na visual quality hangga't maaari. Maaaring i-adjust ng mga user ang antas ng compression para mahanap ang tamang balanse sa pagitan ng laki ng file at linaw ng dokumento.
---
name: compress-pdf
description: "Compress PDF reduces the file size of PDF documents while preserving as much visual quality as possible. Users can adjust the compression level to find the right balance between file size and document clarity. Use this skill when the user asks to compress pdf via the Cross Service Solutions API."
---
# Compress PDF
## Solution Description
Compress PDF reduces the file size of PDF documents while preserving as much visual quality as possible. Users can adjust the compression level to find the right balance between file size and document clarity.
*This widget is provided by PDF24. Get your own widget to enable your visitors to convert to PDF
## Input
| Parameter | Type | Required | Description |
|---|---|---|---|
| `file` | file | Yes | PDF Document |
| `imageQuality` | number | Yes | Values in % from 0 to 100. Smaller value reduces size of PDF File but also the quality. |
| `dpi` | number | Yes | Dots per inch from 72 to 300. Smaller value reduces size of PDF File but also quality. |
## Expected Outcome
Executing this solution creates an asynchronous job. Poll the "Get Result" endpoint
until `status` is no longer `pending` — a `done` status means `output` will contain
the result (`output.result`, `output.data`, and/or `output.files[]` depending on the
solution), while a `failed` status means the job could not be completed.
## Execute Solution
This is a free endpoint — no `Authorization` header is required.
```bash
curl -D - -X POST 'https://api.cross-service-solutions.com/solutions/solutions/free/62' \
-F 'file=@/path/to/file.pdf' \
-F 'imageQuality=<number>' \
-F 'dpi=<number>'
```
The response sets `Solution_id` and `Solution_uuid` cookies via `Set-Cookie` headers
(visible with `-D -`). Read their values — they're required for the "Get Result"
request below.
## Get Result
```bash
curl --location 'https://api.process-machine.com/solutions/solutions/free/solution/latest' \
--header 'Cookie: Solution_id=<id>; Solution_uuid=<uuid>'
```
Replace `<id>` and `<uuid>` with the `Solution_id` and `Solution_uuid` values captured
from the "Execute Solution" response headers. This endpoint lives on a different
domain than "Execute Solution", so the cookies must be passed explicitly via the
`Cookie` header — they won't be forwarded automatically across domains by a reused
cookie jar.
**Response example:**
```json
{
"id": 101362,
"name": "Free - Compress PDF",
"status": "done",
"steps": [
{ "name": "Compress PDF", "status": "done" },
{ "name": "Compress PDF", "status": "done" }
],
"output": {
"result": "",
"data": null,
"files": [
{ "name": "compressed.pdf", "path": "https://storage.googleapis.com/..." }
]
}
}
```
**Polling behavior:**
- Poll every 3 seconds
- Timeout after 60 seconds (20 attempts) — if still `pending`, tell the user the
job is taking longer than expected and offer to keep waiting or retry
- On `done`: download the file(s) from `output.files[].path` (a signed, time-limited
URL) — or check `output.result`/`output.data` if `files` is empty
- On `failed`: surface the `error` field (if present) to the user in plain language;
do not retry automatically more than once
## Error Handling
| Scenario | Response |
|---|---|
| Missing required parameter(s) | Ask the user for the missing field(s): `file`, `imageQuality`, `dpi` |
| Invalid or unreadable file | Tell the user which file couldn't be processed and ask them to check the format or re-upload |
| API returns `failed` status | Report the failure reason if available; offer to retry |
| `403 Forbidden` on Get Result | The `Solution_id`/`Solution_uuid` values are missing, incorrect, or expired — re-run "Execute Solution" and retry with the fresh values |
I-download ang Kasanayan na gusto mong gamitin, pagkatapos i-upload ito sa iyong workspace. Kapag na-upload na, magagamit ito ng agent bilang reference at maiaapply habang gumagawa ng mga gawain.
May mga Kasanayan na nangangailangan ng access sa network para gumana nang maayos. Bago sila patakbuhin, i-allowlist ang mga sumusunod na domain:
api.cross-service-solutions.com
— ginagamit para sa mga API request sa aming serbisyo
api.process-machine.com
— ginagamit para kunin ang resulta ng job ng Kasanayan
storage.googleapis.com
— ginagamit para mag-download ng mga sumusuportang file at asset
Kapag hindi naka-enable ang mga domain na ito, maaaring mabigo o magbalik ng hindi kumpletong resulta ang mga Kasanayang umaasa sa external na mga tawag.
Ang iyong kontribusyon ay nagpapahusay ng direktoryo para sa lahat. Ibahagi ang iyong alam — hindi pa isang minuto.
Kilala ba ang isang tool o workflow na nalulutas ng tunay na problema? Tulungan ang iba na matuklasan ito — sinusuri ng aming koponan ang bawat pagsusumite.
May sira, nawawala, o dapat pahusayin? Binabasa namin ang bawat mensahe at kumikilos sa pinakamahusay na ideya.