TPad::Print() really works on TCanvas only. A protection has been added in case it is called on a pure TPad.