Don't get sick and get around you, but ... and I say this as a Canvas lover - the best graphics package I used is gRaphael, which uses SVG / VML, not Canvas.
http://g.raphaeljs.com/
You marked this as "canvas" and "html5", but gRaphael fulfills most of your requirements. It is especially easy to use, and the learning curve is better, since SVG usually requires much less code to get rich user experience than Canvas-based libraries.
Here is a plugin to export to image for phraphael based applications
I'm not sure about the print situation, but since it is an SVG, you should be able to print with less problems than if you were using Canvas, but I don't think raphael has anything else built in to work with printing.
Of course, using SVG means that productivity will be greater if you plan to create a very complex / large application with a lot of animation and interactivity, but this is unlikely in the world of graphics if you are not trying to win the award "the most nauseating way to present information" or whatever- something like that.
I sincerely think that you should first start prototyping your application using gRaphael. You should be able to get something faster than using the Canvas library, which will allow you to quickly assess whether it will be good or not.
source share