############################### ## jpg2pdf - Embeds JPEG in PDF ############################### import sys from reportlab.lib.pagesizes import letter from reportlab.platypus import SimpleDocTemplate, flowables __jpgname = str() def drawPageFrame(canvas, doc): width, height = letter canvas.saveState() canvas.drawImage( __jpgname, 0, 0, height, width, preserveAspectRatio=True, anchor='c') canvas.restoreState() def jpg2pdf(pdfname): width, height = letter # To make it landscape, pagesize is reversed # You can modify the code to add PDF metadata if you want doc = SimpleDocTemplate(pdfname, pagesize=(height, width)) elem = [] elem.append(flowables.Macro('canvas.saveState()')) elem.append(flowables.Macro('canvas.restoreState()')) doc.build(elem, onFirstPage=drawPageFrame) if __name__ == '__main__': if len(sys.argv) < 3: print("Usage: python jpg2pdf.py ") exit(1) __jpgname = sys.argv[1] jpg2pdf(sys.argv[2])