What model canon is it ?
The print head on canons are usually replaceable, all you need to do is remove the ink tanks, and then the print head can be removed. And are around 1/3 to 1/2 the price of a new printer of similar specifications..
The most common cause of print head failure is blocked ink tubes.. You can unblock maybe, by soaking the print head in a little water and bleach (a few drops) mixed together.. about 5 to 10 mils in a bottle top (like a peanut butter jar top), enough to cover the bottom of print head, and then sit the print head in that for a day, maybe changing the water/bleach solution once or twice depending on how dirty it gets..
Dry, make sure all contacts are clean and dry, put it back in printer, put in the ink tanks, and then do a deep clean via the print driver menus..
This might not fix your problem, but is worth a try.. I have done to quite a few canon print heads and its worked..