Canon kindly provide Linux drivers for their inkjet printers. Unfortunately, they're not designed for Ubuntu. It took a while to get my (IP2500) printer working, so this is for reference:
First, get the driver RPMs from Canon, and convert them to .deb using fakeroot alien where possible:
- The first, cnijfilter-common-*.src.rpm, doesn't build properly using alien. Luckily, someone on the OpenPrinting forum has a deb that works. The important file is pstocanonij, which has to be in /usr/lib/cups/filter/.
- The second, cnijfilter-ip2500series-*.i386.rpm installs fine: run
fakeroot alienon the .rpm file, then double-click the .deb that's produced to install it.
Next, try running cifip2500 (it'll probably be in /usr/local/bin/). If it produces errors, then you'll know which libraries it's not able to find. I had to do the following:
sudo ln -s /usr/lib/libtiff.so /usr/lib/libtiff.so.3
sudo ln -s /usr/lib/libpng.so /usr/lib/libpng.so.3
Once that's working, restart cups with sudo /etc/init.d/cupsys restart then open System > Administration > Printing and add the new printer.
Comments
All fields are optional, email address will not be shown; no HTML, URLs are automatically hyperlinked.

Thanks for the tip :)
Lack of printer support has been one of my biggest woes with linux over the last several years. In fact, I had two epson printers die for seemingly no reason, and I'm quite certain now it was from using open-source drivers with them. I've been looking for a printer with native linux drivers so this I'm glad to see there is one out there!
Take care,
Keith