from reportlab.lib import randomtext from reportlab import platypus import os,random styles = getSampleStyleSheet () path = os.path.realpath (os.path.dirname (__file__)) def drawPageFrame (canvas, doc): canvas.saveState () canvas.drawImage (path+"/ujiPDF.jpg",50,50,57,57) canvas.restoreState () doc = SimpleDocTemplate ("salida.pdf",pagesize=A4). Retina displays then have to scale this up, usually by a factor of x2. Try this on a non-retina display and the PNG looks identical to the original SVG. Or, if this bugs you, go implement drawImage() for High DPI canvas, which will basically generate a x2 image anyways! In addition, it was a challenge to get the image to download on Safari.