다양한 파일 형식을 고품질 PDF 문서로 빠르게 변환하여 손쉽게 공유하고 보관하세요.
---
name: convert-to-pdf
description: "Quickly convert various file formats into high-quality PDF documents for easy sharing and archiving. Use this skill when the user asks to convert to pdf via the Cross Service Solutions API."
---
# Convert to PDF
## Solution Description
Quickly convert various file formats into high-quality PDF documents for easy sharing and archiving.
This widget is provided by PDF24. Get your own widget to enable your visitors to convert files to PDF on your website.
## Input
| Parameter | Type | Required | Description |
|---|---|---|---|
| `files` | multiple_files | Yes | You can convert multiple files and different types into multiple PDF's. Multiple files can be downloaded as zip-file |
**Constraints:**
- `files` accepts multiple values — repeat the form field once per item
## 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/64' \
-F 'files=@/path/to/file1.pdf' \
-F 'files=@/path/to/file2.pdf'
```
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": 101370,
"name": "Free - Convert to PDF",
"status": "done",
"steps": [
{ "name": "Convert to PDF", "status": "done" }
],
"output": {
"result": "",
"data": null,
"files": [
{ "name": "converted.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): `files` |
| 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 |
사용하려는 스킬을 다운로드한 다음 워크스페이스에 업로드하세요. 업로드하면 에이전트가 작업 중에 해당 스킬을 참조하고 적용할 수 있습니다.
일부 스킬은 올바르게 작동하려면 네트워크 액세스가 필요합니다. 실행하기 전에 다음 도메인을 허용 목록에 추가하세요:
api.cross-service-solutions.com
— 저희 서비스에 대한 API 요청에 사용됩니다
api.process-machine.com
— 스킬 작업 결과를 가져오는 데 사용됩니다
storage.googleapis.com
— 보조 파일 및 에셋 다운로드에 사용됩니다
이 도메인들을 허용하지 않으면 외부 호출에 의존하는 스킬이 실패하거나 불완전한 결과를 반환할 수 있습니다.
여러분의 의견이 이 디렉토리를 더 나은 곳으로 만듭니다. 알고 계신 것을 공유해 주세요 — 1분도 채 걸리지 않습니다.
실제 문제를 해결하는 도구나 워크플로우를 알고 계신가요? 다른 분들이 발견할 수 있도록 도와주세요 — 팀이 모든 제출물을 검토합니다.
오류, 누락, 또는 개선이 필요한 부분이 있으신가요? 모든 메시지를 읽고 좋은 아이디어를 반영합니다.