Compresser un PDF

La compression de PDF réduit la taille des fichiers PDF tout en préservant autant que possible la qualité visuelle. Les utilisateurs peuvent ajuster le niveau de compression pour trouver le bon équilibre entre taille du fichier et clarté du document.

compress-pdf.md
Télécharger
---
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 |

Utiliser les compétences de l'agent IA

1

Télécharger et importer des compétences

Téléchargez la compétence que vous souhaitez utiliser, puis importez-la dans votre espace de travail. Une fois importée, la compétence devient disponible pour que l'agent la consulte et l'applique lors des tâches.

2

Activer les domaines externes requis

Certaines compétences nécessitent un accès réseau pour fonctionner correctement. Avant de les exécuter, autorisez les domaines suivants :

  • api.cross-service-solutions.com — utilisé pour les requêtes API vers notre service
  • api.process-machine.com — utilisé pour récupérer les résultats des tâches de compétence
  • storage.googleapis.com — utilisé pour télécharger les fichiers et ressources associés

Sans ces domaines autorisés, les compétences dépendant d'appels externes peuvent échouer ou renvoyer des résultats incomplets.

Communauté

Aidez-nous à grandir

Votre contribution rend ce répertoire meilleur pour tous. Partagez ce que vous savez — cela prend moins d'une minute.

Proposer une solution

Vous connaissez un outil ou un processus qui résout un vrai problème ? Aidez les autres à le découvrir — notre équipe examine chaque soumission.

Envoyer un retour

Quelque chose de cassé, manquant, ou à améliorer ? Nous lisons chaque message et agissons sur les meilleures idées.