Hide navigation sidebar
Hide table of contents sidebar
Skip to content
Back to top
View this page
Toggle table of contents sidebar

# `PSDraw` module

The `PSDraw` module provides simple print support for PostScript printers. You can print text, graphics and images through this module.

class PIL.PSDraw.PSDraw(fp: IO[bytes] | None = None)

  Sets up printing to the given file. If `fp` is omitted, `sys.stdout.buffer` is assumed.

  begin_document(id: str | None = None) → None

    Set up printing of a document. (Write PostScript DSC header.)

  end_document() → None

    Ends printing. (Write PostScript DSC footer.)

  image(box: tuple[int, int, int, int], im: Image.Image, dpi: int | None = None) → None

    Draw a PIL image, centered in the given box.

  line(xy0: tuple[int, int], xy1: tuple[int, int]) → None

    Draws a line between the two points. Coordinates are given in PostScript point coordinates (72 points per inch, (0, 0) is the lower left corner of the page).

  rectangle(box: tuple[int, int, int, int]) → None

    Draws a rectangle.

    Parameters:

      box – A tuple of four integers, specifying left, bottom, width and height.

  setfont(font: str, size: int) → None

    Selects which font to use.

    Parameters:

      - font – A PostScript font name

      - size – Size in points.

  text(xy: tuple[int, int], text: str) → None

    Draws text at the given position. You must use `setfont()` before calling this method.