The following information is provided as is, and the authors take no responsibility for the correctness.
Page description language used with Canon Bubble Jet Printers. The language is a superset of the IBM ProPrinter language, which was the default emulation on the original monochrome BJ printers. The language was extended with the introduction of the Color Bubble Jet printers; in addition to color support, options for more paper types and sizes, better control over margins and more were added.
For now, the best reference material is in the source code to the Bubble Jet and Color Bubble Jet drivers in Ghostscript and Gutenprint; the GS BJ-10 driver in particular was written with the assistance of older Canon manuals, and the GS BJC driver contains some helpful information that the Gutenprint source is missing.
Canon has not been forthcoming with specifications for many of the later S and iP printers, so much of what is known about them is through trial and error. However, backward compatibility is decent, and printing on a newer printer with an older BJC or S driver has been known to work in many cases. Many of the old ProPrinter commands are still in use, especially the reset commands, and ProPrinter text and graphics might still work on newer printers.