I was having problems with my MX870 after upgrading to 12.04 from 11.10. The printer would be recognized and would receive print jobs, but it would do nothing after displaying the message "Processing" on the LCD screen.
I originally had the printer working under 11.10 with the michael gruz ppa, but this no longer worked in 12.04 and attempting to install from Ubuntu's Printing manager didn't work either.
Finally, I found a michael gruz ppa that has been updated for 12.04:
I first removed the old driver with Synaptic Package Manager, then added the new one:
After doing this, installing the printer with the Printing manager worked.
sudo add-apt-repository ppa:michael-gruz/canon-trunk
sudo apt-get update
sudo apt-get install cnijfilter-mx870series