Cups is still lacking proper support for CaPSL IV printers. For some strange reason this has never been implemented. Particularly Canon LBP 8 Mark IV printer won't work in Linux. There is a poor workaround available, using cjet to convert HP PCL output to CaPSL III for Canon LBP 8 Mark III and LBP 4 printers, but it produces merely hard to read text printouts of really poor quality on the 8 Mark IV, since the resolution is only 300 dpi, while the Canon LBP 8 Mark IV expects 600 dpi. (It's not a hardware issue, the printings from within Windows are perfect quality)
I have already tried to modify cjet to accept 600 dpi, but that results in adding blank lines in between only, so that's not an option.
HP had used the Canon EX printing engine in their printers, they are technically identical with the Canon LBP models.
The difference between HP PCL and Canon CaPSL seems to be merely the ESC sequences have been replaced. So I guess it could be easily possible to modify the Gutenprint drivers for HP laserjet 4 or 4plus to send the CaPSL ESC sequences directly instead of the PCL ESC sequences without changing anything else, and make this way a native CaPSL IV Linux printer driver for the LBP 8 Mark IV and other CaPSL IV printers available?
Resources: identified CaPSL IV ESC sequences (retrieved from printouts to file created by the proprietary Windows 2000 printer driver on a Windows 2000 system)
I'm willing to supply any testing, and could even try to modify Gutenprint driver source code files if you'd point me to the proper place and give me instructions how to do it or what to look for. I have very basic and limited knowledge about programming only, but will do what I can. Also I can provide comparison test printouts to file from within Windows 2000 and Linux both, created from the very same source image- or text-files once a first CaPSL IV gutenprint driver for testing is available, so additional missing ESC sequences can be identified, to get a working 600dpi driver in the end. It is pretty annoying having to print the file to pdf first in Linux, then start a virtualised Windows 2000 always and open the pdf-printout therein just to print a single page from within Linux physically.
Wow, those printers are probably over 3 decades old now.
src/main/print-pcl.c is the gutenprint PCL driver. all of the stp_puts(), stp_putc() and stp_zprintf() calls would need to be changed, as well as modifying the various data tables to use the correct CaPSL sequences/values for various options.
I suspect that the man-hour investment to make this work is going cost more (and result in lower quality/speed plus use a lot more power) than just replacing the printer with something more modern.
But mangling gutenprint is probably going to be of less effort than to hack 'cjet' to accept PCL5e and emit CaPSL IV.