import time from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Image from reportlab.lib.units import inch from io import BytesIO from reportlab.pdfgen import canvas from django.http import HttpResponse from reportlab.lib.pagesizes import letter from resguardos.models import Resguardo from bienes import settings import time from reportlab.lib.enums import TA_JUSTIFY from reportlab.lib.pagesizes import letter from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer, Image from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle from reportlab.lib.units import inch from django.http import HttpResponseRedirect def pdf(request, obj_id): doc = SimpleDocTemplate("form_letter.pdf",pagesize=letter, rightMargin=72,leftMargin=72, topMargin=72,bottomMargin=18) Story=[] logo = "static/imagenes/sa_logo.jpg" magName = "Pythonista" issueNum = 12 subPrice = "99.00" limitedDate = "03/05/2010" freeGift = "tin foil hat" formatted_time = time.ctime() full_name = "Mike Driscoll" address_parts = ["411 State St.", "Marshalltown, IA 50158"] im = Image(logo, 2*inch, 2*inch) Story.append(im) styles=getSampleStyleSheet() styles.add(ParagraphStyle(name='Justify', alignment=TA_JUSTIFY)) ptext = '%s' % formatted_time Story.append(Paragraph(ptext, styles["Normal"])) Story.append(Spacer(1, 12)) # Create return address ptext = '%s' % full_name Story.append(Paragraph(ptext, styles["Normal"])) for part in address_parts: ptext = '%s' % part.strip() Story.append(Paragraph(ptext, styles["Normal"])) Story.append(Spacer(1, 12)) ptext = 'Dear %s:' % full_name.split()[0].strip() Story.append(Paragraph(ptext, styles["Normal"])) Story.append(Spacer(1, 12)) ptext = 'We would like to welcome you to our subscriber base for %s Magazine! \ You will receive %s issues at the excellent introductory price of $%s. Please respond by\ %s to start receiving your subscription and get the following free gift: %s.' % (magName, issueNum, subPrice, limitedDate, freeGift) Story.append(Paragraph(ptext, styles["Justify"])) Story.append(Spacer(1, 12)) ptext = 'Thank you very much and we look forward to serving you.' Story.append(Paragraph(ptext, styles["Justify"])) Story.append(Spacer(1, 12)) ptext = 'Sincerely,' Story.append(Paragraph(ptext, styles["Normal"])) Story.append(Spacer(1, 48)) ptext = 'Ima Sucker' Story.append(Paragraph(ptext, styles["Normal"])) Story.append(Spacer(1, 12)) doc.build(Story) return HttpResponseRedirect("/pdf/" + str(obj_id) + ".pdf") def pdf1(request, pk): response = HttpResponse(content_type='application/pdf') response['Content-Disposition'] = 'attachment; filename="somefilename.pdf"' buffer = BytesIO() p = canvas.Canvas(buffer) #canvas = canvas.Canvas("form.pdf", pagesize=letter) p.setLineWidth(.3) p.setFont('Helvetica', 12) p.drawString(30,750,'OFFICIAL COMMUNIQUE') p.drawString(30,735,'OF ACME INDUSTRIES') p.drawString(500,750,"12/12/2010") p.line(480,747,580,747) p.drawString(275,725,'AMOUNT OWED:') p.drawString(500,725,"$1,000.00") p.line(378,723,580,723) p.drawString(30,703,'RECEIVED BY:') p.line(120,700,580,700) p.drawString(120,703,"JOHN DOE") #p.drawString(100, 100, "Hello world.") p.showPage() p.save() # Get the value of the BytesIO buffer and write it to the response. pdf = buffer.getvalue() buffer.close() response.write(pdf) return response