- Send and receive IPP payload.
- Generate PWG Raster data.
- Print hard-coded bitmap using APIs above.
- 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.
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.
- RFC 8010: Internet Printing Protocol/1.1: Encoding and Transport
- RFC 8011: Internet Printing Protocol/1.1: Model and Semantics
- PWG5102.4: PWG Raster Format [PDF]
- CUPS Raster Format (PWG Raster is subset of CUPS Raster v2))
- PWG Raster sample files
- PWG5101.1: PWG Media Standardized Names 2.0 [PDF]
- Driverless Printing Standards And their PDLS