The PageRange Class

class pypdf.PageRange(arg: Union[slice, PageRange, str])[source]

Bases: object

A slice-like representation of a range of page indices.

For example, page numbers, only starting at zero.

The syntax is like what you would put between brackets [ ]. The slice is one of the few Python types that can’t be subclassed, but this class converts to and from slices, and allows similar use.

  • PageRange(str) parses a string representing a page range.

  • PageRange(slice) directly “imports” a slice.

  • to_slice() gives the equivalent slice.

  • str() and repr() allow printing.

  • indices(n) is like slice.indices(n).

static valid(input: Any) bool[source]

True if input is a valid initializer for a PageRange.


input – A possible PageRange string or a PageRange object.


True, if the input is a valid PageRange.

to_slice() slice[source]

Return the slice equivalent of this page range.

indices(n: int) Tuple[int, int, int][source]

Assuming a sequence of length n, calculate the start and stop indices, and the stride length of the PageRange.

See help(slice.indices).


n – the length of the list of pages to choose from.


Arguments for range().