# `crop`
Crop pages to a rectangle
## Usage
> pdftl `` `crop` `...` `[preview]` `output` `` `[]`
## Details
Crops pages to a rectangle defined by offsets from the edges or in
various other ways.
One format is `page-range(left[,top[,right[,bottom]]])`. Here, `left`,
`top` etc. are offsets from the current page boundaries; positive numbers
move inwards towards the center of the page. If you omit some of
these, the rest are filled in in the obvious way. Units can be `pt`
(points), `in` (inches), `mm`, `cm` or `%` (a percentage). If omitted,
the default unit is `pt`.
For example, `1-end(10pt,20pt,10pt,20pt)` removes a
margin of 10 points from the left and right, and
20 points from the top and bottom.
Alternatively, specify `1-3(a4)` to crop pages `1-3` to size a4.
Many paper size names are allowed, see `data/paper_sizes.py`.
For landscape add the suffix `_l` to the paper size, e.g., `a4_l`.
You can also crop to the visible content using `fit`:
- `1-end(fit)` or simply '(fit)' crops each page to its content.
- `1-10(fit-group)` crops pages 1-10 to the union of their content.
- `1-10(fit-group=2-3)` crops pages 1-10 to the union of the contents of pages 2-3.
Or use `abs` to specify an exact bounding box `x0,y0,x1,y1` where
`x0,y0` are the coordinates of the bottom left corner and `x1,y1` the
coordinates of the upper right corner:
- `1-10(abs,100,150,400,500)` crops pages 1-10 to the absolutely
positioned box with corners at (100pt,150pt) and (400pt,500pt)
You can also include a comma-separated list of up to 4 dimensions to
expand the crop rectangle: `(fit,1cm)` or `(fit-group, 10,0,20,50)`.
When using `abs` you can also give units or percentages, or just
numbers to default to `pt`. This uses the PDF page coordinate system,
so x-values increase to the right and y-values increase
upwards. Often, but not always, the origin (0,0) is at the bottom left
corner of the page (this depends on the page MediaBox, as shown by
[`dump_data`](), for example.)
If the `preview` keyword is given, a rectangle will be drawn instead
of cropping.
**Shorthand input format**
A single argument of the form
```
[page-range](foo=bar,baz,...)
```
can be replaced with the simpler form
```
[page-range] foo=bar baz ...
```
as separate arguments. So, instead of `1-3(A4)` you can type `1-3 A4`,
and instead of `(A4)` you can type just `A4`.
See examples below.
This syntax is more convenient but slightly less expressive; for example, it cannot be used
to replace compound arguments like
``
1-3(fit) 4-6(1cm)
``
## Examples
> Remove a 1cm margin from the sides
and 2cm from the top and bottom of all pages:
```
pdftl in.pdf crop 1cm,2cm output out.pdf
```
> Crop every page to its visible content plus 10pt padding.
```
pdftl in.pdf crop fit 10pt output clean.pdf
```
> Preview effect of cropping the even-numbered pages
between pages 2 and 8 to A5
```
pdftl in.pdf crop '2-8even(a5)' preview output out.pdf
```
> Preview effect of cropping the even-numbered pages
between pages 2 and 8 to A5
```
pdftl in.pdf crop 2-8even a5 preview output out.pdf
```
**Tags**: in_place, geometry
*Source: pdftl.operations.rebox*
*Read online: [https://pdftl.readthedocs.io/en/latest/operations/crop.html](https://pdftl.readthedocs.io/en/latest/operations/crop.html)*
*Type: Operation*