- more elegant version of ded0a9b, do not zoom to fit in setDocument, instead zoom to fit before rendering