I have a Canon iP2000 printer. The cartridges are cheap and it prints fairly fast. But it doesn’t support Linux officially.
Note that TurboPrint is commercial, not open source
The Canon drivers have some parts that are GPL with a special extension to link them to some proprietary code they provide in binary form.
I tried to use the Canon iP3100 Linux driver with the iP2000, after that Windows wouldn’t recognize it anymore! I was blaming the Linux drivers until I took it back to the supplier and they said the USB cable was faulty. After replacing the cable, it works fine on Windows again…
From looking in the Registry Windows is looking for:
|Device Instance Id||USBPRINT\CANONIP2000\6&183AA36C&0&USB001|
Also under Printer Driver data it has DeviceID as