page specification syntax
Specifying collections of pages and transformations
Details
The page specification syntax is a powerful mechanism
used by commands like cat, delete, and rotate to
select pages and optionally apply transformations to them as
they are processed.
A complete page specification string combines up to three optional components in the following order:
Page range: Which pages to select.
Qualifiers, step and omissions: Filtering the selected pages by parity (even/odd) or aspect ratio (portrait/landscape), a step size to use when interpreting ranges, and omitted ranges.
Transformation modifiers: Applying rotation or scaling to the selected pages. This is ignored by some operations.
1. Page Ranges
A page range defines the starting and ending page numbers. If omitted, the specification applies to all pages.
Multiple ranges can be separated by commas (e.g. 1,3,5-10).
A page identifier can be:
an integer (e.g.,
5) representing that page (numbered from page 1, the first page of the PDF file, regardless of any page labelling),the keyword
end,or
rfollowed by one of the two above types, representing reverse numbering. Sor1means the same asend, andrendmeans the same as1.
The following page range formats are supported:
<I>: A single page identifier<I>-<J>: A range of pages (e.g.,1-5). If the start page number is higher than the end page number (e.g.,5-1), then the pages are treated in reverse order.
2. Page qualifiers, step and omissions
Parity qualifiers
Parity qualifiers filter the selected pages based on their number. They are added immediately after the page range. Valid qualifiers are:
even: selects only even-numbered pages in the range (e.g.,1-10even).odd: selects only odd-numbered pages in the range (e.g.,oddalone selects all odd pages).portrait: selects only pages with width no bigger than heightlandscape: selects only pages with height no bigger than width
Step size
An optional step size to use when interpreting page ranges, starting from the first page in the range. The step size must an integer, and at least 1. The default step size is 1.
Examples
portraitevenselects portrait pages with even numbers.6-20landscapeevenselects landscape pages with even numbers from pages 6-20.step4selects every 4th page (pages 1, 5, 9, …) in the document.5-12step3selects pages 5, 8, 1112-5step3selects pages 12, 9, 65-14step3selects pages 5, 8, 11, 145-14step3evenselects pages 8, 11
You can also use by or every as alternatives to step.
Omissions
The ~ operator is used to exclude pages from the selection
defined by the preceding page range and qualifiers.
~<N>-<M>: Omits a range of pages (e.g.,1-end~5-10selects all pages except 5 through 10).~<N>: Omits a single page (e.g.,1-10~5selects all pages from 1 to 10 except page 5).~r<N>: Omits a single page counting backwards from the end (e.g.,~r1omits the last page).
3. Transformation Modifiers
These optional modifiers can be chained after the range and qualifiers to apply changes to the page content.
Rotation (relative)
These modifiers adjust the page’s current rotation property by adding or subtracting degrees.
right: Rotates 90 degrees clockwise (+90),left: Rotates 90 degrees counter-clockwise (-90),down: Rotates 180 degrees (+180).
Rotation (absolute)
These modifiers reset and set the page’s rotation property to a fixed orientation (0, 90, 180, or 270 degrees) relative to the page’s natural (unrotated) state.
north: Resets rotation to the natural page orientation,east: Sets rotation to 90 degrees clockwise,south: Sets rotation to 180 degrees,west: Sets rotation to 270 degrees clockwise or 90 degrees counter-clockwise.
Scale and zoom
x<N>: Scales the page content by factor N. N is typically an integer or decimal (e.g.,x2doubles the size,x0.5halves it).z<N>: Zoom in by N steps (or out if N is negative), where a zoom of 1 step corresponds to enlarging A4 paper to A3. More technically, we scale by factor of 2^(N/2). (N can be any number). For example, z1 will scale A4 pages up to A3, andz-1scales A4 pages down to A5.
Groups (Applies to all contents)
[<Range>, <Range>]<Modifier>: Applies the modifier to the entire disjoint set of pages.
Example: [1-3, 5]x2 scales pages 1, 2, 3, and 5.
Note: Group specifications must be distinct arguments. You cannot
combine them with other ranges using commas (e.g. [1,2]x3,6x2 is invalid).
Use spaces instead: [1,2]x3 6x2.
Examples
1-5eastx2selects pages 1 through 5, rotating them 90 degrees clockwise (east) and scaling them by 2x.oddleftz-1selects only the odd pages from the beginning to the end, rotating them 90 degrees counter-clockwise (left) and applying a zoom factor of z-1.1-end~3-5or equivalently~3-5selects all pages except pages 3-5.~2downz1selects all pages except page 2, rotating them by 180 degrees and zooming in 1 step. This will likely need to be quoted to prevent your shell misinterpreting it. (The same goes for~3-5).end-r4selects the last 4 pages, in reverse order.1,3,5selects pages 1, 3, and 5.[1,3,5]x2selects pages 1, 3, and 5 and scales them all.
Source: pdftl.utils.page_specs.help
Read online: https://pdftl.readthedocs.io/en/latest/general/page_specs.html
Type: HelpTopic