I get this all the time on my Mac systems as well. The only solution that works MOST of the time (not always) is to delete the printer and re-add it. Rebooting wifi doesn't work. Rebooting the printer sometimes works but usually not. I have this same problem on several Macs previously running Mavericks but now all Yosemite so that didn't help. The combination of rebooting the printer THEN deleting and re-adding the print drivers has always worked so far.
I have set my router to always give the printer the same IP address, 192.168.1.101 in my case. I can always hit the built in website on the printer using
http://192.168.1.101 and get basic status, setup, etc. even while it won't print.
I think this is a case not specific to Canon, or HP, or PC, or Mac. It is a problem that the printer makers just don't want to put any resources into creating good, robust drivers as there is no competitive advantage to it. They are all terrible at this. I would pay way more money for the same printer I have if it ALWAYS printed.
I am about to write my own printer driver wrapper that just deletes the printer and adds it back every time I want to print in an attempt to fix this problem.