# Rotate PDF pages: web app and CLI
## What it does
Rotates pages in a PDF document. You can rotate all pages or a selected set by 90°, 180°, or 270°.

## Inputs and limits
* Input format: PDF file (uploaded in the web app or placed in the task’s input folder for the CLI).
* Supported rotation angles: 90, 180, 270.
* Scope:
  * **All pages** – the whole document is rotated.
  * **Selected pages** – specify a comma‑separated list of page numbers (e.g., `1,3,5`).
* No explicit size limits are documented; the CLI runs on the local machine, the web app on the hosted service.

## Web app
The page at **/app-prod/rotate-pdf** presents a form where you upload a PDF, choose an angle (90°, 180°, 270°), select the rotation scope (`a` for all pages or `s` for selected pages), and, if the latter, enter the page numbers to rotate. After submitting, the service returns the rotated PDF.

## Command line (CLI)
The Documentize.Rotate CLI plugin rotates PDF pages from a task folder. Required options are `--angle` (90, 180, 270) and `--rotate-type` (`a` for all pages, `s` for selected pages). Place the PDF in the input folder, run the plugin, and the rotated file appears in the output folder.

```bash
# Linux / macOS (needs the .NET 10 runtime and documentize.lic next to the DLL)
export PLUGIN_INPUT_DIR=./work/input
export PLUGIN_OUTPUT_DIR=./work/output
mkdir -p "$PLUGIN_INPUT_DIR/job1"
cp sample.pdf "$PLUGIN_INPUT_DIR/job1/"
dotnet Documentize.Rotate.dll --task-id job1 --angle 90 --rotate-type a
ls "$PLUGIN_OUTPUT_DIR/job1"
```

```powershell
# Windows PowerShell
$env:PLUGIN_INPUT_DIR  = "$PWD\work\input"
$env:PLUGIN_OUTPUT_DIR = "$PWD\work\output"
New-Item -ItemType Directory -Force "$env:PLUGIN_INPUT_DIR\job1" | Out-Null
Copy-Item sample.pdf "$env:PLUGIN_INPUT_DIR\job1\"
dotnet Documentize.Rotate.dll --task-id job1 --angle 90 --rotate-type a
Get-ChildItem "$env:PLUGIN_OUTPUT_DIR\job1"
```

## Verified

Every code sample on this page was run on 2026-11-03 and its result was checked:

- Rotate a PDF via CLI (CLI plugin): passed in 5 s
