Why is it impossible?
Raster graphics. AFAIK, canvas itself doesn't support native vector export. You have to rely on whatever graphics library you use to give you a vector printout of your entire scene, which might have inexact information about all objects in the scene if you use code external to the library.
I know this was the case with KineticJS/ConcreteJS