/ipp-print

Experiments on Internet Printing Protocol

Primary LanguageRustMozilla Public License 2.0MPL-2.0

IPP

Current Status

  • Send and receive IPP payload.
  • Generate PWG Raster data.
  • Print hard-coded bitmap using APIs above.

TODO

  • Run-length encode bitmap to reduce size.
  • Check printer attributes and generate rasters in a format appropriate for the printer.
  • Implement an API that abstracts the protocol for ease of use.

About IPP and Driverless Printing

There are some specifications based upon IPP.

  • AirPrint: Transfers page data with Apple Raster (image/urf), JPEG, and PDF.
  • IPP Everywhere: Transfers page data with PWG Raster, JPEG, and PDF.
  • Mopria: Transfers page data with PCLm (raster-only PDF subset), PWG Raster, and PDF.
  • Wi-Fi Direct Print Services: Transfers page data with PCLm, PWG Raster, and PDF.

We should be able to get supported format by calling Get-Printer-Attributes, so I expect that driverless printing could be implemented by treating printers that support these standards as regular IPP devices.

Reference