PDF 압축

PDF 압축은 시각적 품질을 최대한 유지하면서 PDF 문서의 파일 크기를 줄입니다. 사용자는 압축 수준을 조정하여 파일 크기와 문서 선명도 사이의 적절한 균형을 찾을 수 있습니다.

compress-pdf.md
다운로드
---
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 |

AI 에이전트 스킬 사용하기

1

스킬 다운로드 및 업로드

사용하려는 스킬을 다운로드한 다음 워크스페이스에 업로드하세요. 업로드하면 에이전트가 작업 중에 해당 스킬을 참조하고 적용할 수 있습니다.

2

필요한 외부 도메인 허용

일부 스킬은 올바르게 작동하려면 네트워크 액세스가 필요합니다. 실행하기 전에 다음 도메인을 허용 목록에 추가하세요:

  • api.cross-service-solutions.com — 저희 서비스에 대한 API 요청에 사용됩니다
  • api.process-machine.com — 스킬 작업 결과를 가져오는 데 사용됩니다
  • storage.googleapis.com — 보조 파일 및 에셋 다운로드에 사용됩니다

이 도메인들을 허용하지 않으면 외부 호출에 의존하는 스킬이 실패하거나 불완전한 결과를 반환할 수 있습니다.

커뮤니티

함께 성장해요

여러분의 의견이 이 디렉토리를 더 나은 곳으로 만듭니다. 알고 계신 것을 공유해 주세요 — 1분도 채 걸리지 않습니다.

솔루션 제안하기

실제 문제를 해결하는 도구나 워크플로우를 알고 계신가요? 다른 분들이 발견할 수 있도록 도와주세요 — 팀이 모든 제출물을 검토합니다.

피드백 보내기

오류, 누락, 또는 개선이 필요한 부분이 있으신가요? 모든 메시지를 읽고 좋은 아이디어를 반영합니다.