---
name: "pdf123-to-single-page"
description: "Stack every page of a PDF into one long page. The width is that of the widest page; the height is the sum of all page heights. Runs the PDF123 \"PDF To Single Page\" tool (pdf123.xyz) over its REST API with curl, no account needed. Use when the user wants this done to their file. Also known as: 拼成单页, PDF a una sola página, एक पृष्ठ में जोड़ें, دمج في صفحة واحدة, PDF em página única, PDF menjadi satu halaman, Fusionner en une seule page, Собрать в одну страницу, 1ページに結合, Zu einer Seite zusammenfügen, 한 페이지로 이어 붙이기, Ghép thành một trang, Tek sayfada birleştir, 拼成單頁, PDF in pagina unica, รวมเป็นหน้าเดียว, Złącz w jedną stronę, Зібрати в одну сторінку, Tot één pagina maken, PDF ke satu halaman, Slå ihop till en sida, Συγχώνευση σε μία σελίδα, Съединяване в една страница, Uneix en una sola pàgina, Unganisha kuwa ukurasa mmoja."
compatibility: "Needs curl 7.76+ and outbound HTTPS to pdf123.xyz, or PDFX_API_BASE pointing at a self-hosted pdfx-server."
---

# PDF To Single Page (PDF123)

Stack every page of a PDF into one long page. The width is that of the widest page; the height is the sum of all page heights.

Web version: https://pdf123.xyz/to-single-page · All tools: https://pdf123.xyz/skills/pdf123.md

## When to use

- Make a long strip for a timeline screenshot
- Feed a single-page pipeline that rejects multi-page files
- Compare a short form as one scroll

## Run it

Replace the sample file names and values with the user's, then run:

```bash
API="${PDFX_API_BASE:-https://pdf123.xyz}"
curl -sS --fail-with-body -X POST "$API/api/v1/general/pdf-to-single-page" \
  -F "fileInput=@input.pdf" \
  --output-dir "pdf123-output/$(date +%Y%m%d-%H%M%S)" --create-dirs -OJ -w '%{filename_effective} %{content_type}\n'
```

## Inputs

Everything is `multipart/form-data`. The command above already sends each field with its default; keep them all and change only the values the user asked for, since some endpoints reject a missing optional field.

| Field | Type | Required | Default | Notes |
| --- | --- | --- | --- | --- |
| `fileInput` | file | yes | | .pdf (one file) |

## Result

curl saves the result in a new `pdf123-output/<timestamp>/` directory under the server's file name and prints its path and content type. Several output files come back as one ZIP. Tell the user where the file is.

## Limits

- Vertical stack only
- No gap or N-up control
- Huge heights may not display
- Links, bookmarks and page rotation flags are not kept
- Upload limit on this website: 500 MB per file, sent in chunks above about 95 MB. A single direct API request body is capped at 100 MB.

## Errors

- A non-zero curl exit means the request failed. The saved file then holds `application/problem+json`; read it and report its `detail` to the user instead of retrying blindly.
- `413`: the upload exceeds 100 MiB. `429`: wait for `Retry-After` seconds, then retry once.
- Send `X-API-KEY: $PDFX_API_KEY` only if the user has a PDF123 API key; anonymous calls work without it.

## Privacy

Files are uploaded to the API host, processed, and deleted once the response is sent. For confidential files, ask before uploading, or use a self-hosted server via `PDFX_API_BASE`.
