def generate_qr(request, route_id): if not request.user.is_authenticated: return render(request, "not_registered.html") route = Route.objects.get(uuid=route_id) # Get routes checkpoints = Checkpoint.objects.filter(route=route_id).order_by('name') # Get teams teams = Team.objects.filter(route=route_id).all() # Create the HttpResponse object with the appropriate PDF headers. response = HttpResponse(content_type='application/pdf') response['Content-Disposition'] = f'attachment; filename="{route.name}.pdf"' p = canvas.Canvas(response) for checkpoint in checkpoints: qrw = QrCodeWidget(f"https://piraat-hike-tracker.herokuapp.com/checkpoint/{checkpoint.uuid}") b = qrw.getBounds() qrw.barHeight = 20*cm qrw.barWidth = 20*cm d = Drawing(20*cm, 20*cm) d.add(qrw) p.setFont('Helvetica',20) p.drawCentredString(21*cm/2, 24*cm, "CHECKPOINT") p.setFont('Helvetica',30) p.drawCentredString(21*cm/2, 22*cm, checkpoint.name) p.setFont('Helvetica',15) p.drawCentredString(21*cm/2, 20*cm, f"QR code voor {route.name}. S.v.p. laten hangen.") renderPDF.draw(d, p, 0, 0) p.showPage() for team in teams: qrw = QrCodeWidget(f"https://piraat-hike-tracker.herokuapp.com/register/{team.uuid}") b = qrw.getBounds() qrw.barHeight = 10*cm qrw.barWidth = 10*cm d = Drawing(10*cm, 10*cm) d.add(qrw) p.setFont('Helvetica',20) p.drawCentredString(21*cm/2, 24*cm, "TEAM") p.setFont('Helvetica',30) p.drawCentredString(21*cm/2, 22*cm, team.name) p.setFont('Helvetica',15) p.drawCentredString(21*cm/2, 20*cm, f"Scan mij om je telefoon te registreren!") renderPDF.draw(d, p, 5*cm, 0) p.showPage() p.save() return response
def Identificacao(myCanvas, dados, pagina): margin = 2 * cm marginleft = margin margintop = height - 1.1 * margin myCanvas.setStrokeColorRGB(0, 0, 0) myCanvas.setFillColorRGB(0, 0, 0) codigo = dados.codigo + '-' + format(pagina, '02d') # Dados do aluno e da prova myCanvas.setFont('Helvetica-Bold', 12) myCanvas.drawString(marginleft + 1.1 * cm, 25.4 * cm, dados.nome) myCanvas.drawString(marginleft + 0.7 * cm, 24.8 * cm, dados.ra) myCanvas.drawString(marginleft + 4.2 * cm, 24.8 * cm, dados.nomePolo) myCanvas.drawString(marginleft + 12 * cm, 24.8 * cm, dados.data) myCanvas.drawString(marginleft + 1.3 * cm, 24.2 * cm, dados.curso) myCanvas.drawString(marginleft + 9.3 * cm, 24.2 * cm, dados.turma) myCanvas.drawString(marginleft + 13.7 * cm, 24.2 * cm, dados.bimestre) myCanvas.drawString(marginleft + 2 * cm, 23.6 * cm, dados.disciplina + ' - ' + dados.nomeDisciplina) myCanvas.drawString(marginleft + 1.5 * cm, 23 * cm, codigo) # Coloca QR-Code no canto superior direito qrw = QrCodeWidget(codigo) qrsize = 100.0 b = qrw.getBounds() w = b[2] - b[0] h = b[3] - b[1] d = Drawing(qrsize, qrsize, transform=[qrsize/w, 0, 0, qrsize/h, 0, 0]) d.add(qrw) renderPDF.draw(d, myCanvas, 16 * cm, margintop - h + 28) return
def generar_credencial(request, pk): p = Participante.objects.get(pk=pk) p.credencial = True p.save() response = HttpResponse(content_type='application/pdf') pdf_name = "crendecial.pdf" # llamado clientes response['Content-Disposition'] = 'inline; filename=%s' % pdf_name buff = BytesIO() c = canvas.Canvas(buff, pagesize=letter) c.setFont('Helvetica-BoldOblique', 16) c.drawCentredString(140,680,(p.nombres).upper()) c.setFont('Helvetica', 10) c.drawString(105,645,(p.apellidos).upper()) c.drawCentredString(150,618,(p.club).upper()) c.drawCentredString(145,593,(p.ciudad).upper()) qrw = QrCodeWidget('CONFERENCIA ROTARY 4690|2018|'+(p.nombres + ' ' + p.apellidos).upper()) b = qrw.getBounds() w=b[2]-b[0] h=b[3]-b[1] d = Drawing(40,40,transform=[40./w,0,0,40./h,0,0]) d.add(qrw) renderPDF.draw(d, c, 230, 580) c.showPage() c.save() response.write(buff.getvalue()) buff.close() return response
def IdentificaListaPresenca(myCanvas, disciplina, pagina): margin = 2 * cm marginleft = margin margintop = height - 1.1 * margin codigo = DataInvertida(disciplina.data) + '-' + disciplina.polo + \ '-' + disciplina.disciplina + '-' + disciplina.prova + '-' + \ 'presenca' + '-' + format(pagina, '02d') # Dados do aluno e da prova myCanvas.setFont('Helvetica-Bold', 12) myCanvas.drawString(marginleft + 1.1 * cm, 26 * cm, disciplina.nomePolo) myCanvas.drawString(marginleft + 1.6 * cm, 25.4 * cm, codigo) myCanvas.drawString(marginleft + 11.6 * cm, 25.4 * cm, disciplina.data) myCanvas.drawString(marginleft + 2 * cm, 24.8 * cm, disciplina.disciplina + ' - ' + disciplina.nomeDisciplina) # Coloca QR-Code no canto superior direito qrw = QrCodeWidget(codigo) qrsize = 100.0 b = qrw.getBounds() w = b[2] - b[0] h = b[3] - b[1] d = Drawing(qrsize, qrsize, transform=[qrsize/w, 0, 0, qrsize/h, 0, 0]) d.add(qrw) renderPDF.draw(d, myCanvas, 16 * cm, margintop - h + 28) return
def _draw_barcodearea(self, canvas: Canvas, op: OrderPosition, o: dict): content = o.get('content', 'secret') if content == 'secret': content = op.secret elif content == 'pseudonymization_id': content = op.pseudonymization_id level = 'H' if len(content) > 32: level = 'M' if len(content) > 128: level = 'L' reqs = float(o['size']) * mm kwargs = {} if o.get('nowhitespace', False): kwargs['barBorder'] = 0 qrw = QrCodeWidget(content, barLevel=level, barHeight=reqs, barWidth=reqs, **kwargs) d = Drawing(reqs, reqs) d.add(qrw) qr_x = float(o['left']) * mm qr_y = float(o['bottom']) * mm renderPDF.draw(d, canvas, qr_x, qr_y)
def buat_kotak(c, nomor, height, baris, kolom, string): awal = 35 + (130 * (kolom - 1)) + (5 * (kolom - 1)) panjang = awal + 130 brs = height - (60 + (115 * (baris - 1))) brs2 = height - (165 + (115 * (baris - 1))) c.line(awal, brs, panjang, brs) c.line(awal, brs, awal, brs2) c.line(awal, brs2, panjang, brs2) c.line(panjang, brs2, panjang, brs) qrw = QrCodeWidget(string) b = qrw.getBounds() w = b[2] - b[0] h = b[3] - b[1] d = Drawing(100, 100, transform=[100. / w, 0, 0, 100. / h, 0, 0]) d.add(qrw) renderPDF.draw(d, c, awal + 15, brs - 90) c.setFont('Helvetica', 12) c.drawString(awal + 6, brs - 92, string) c.setFont('Helvetica', 6) c.drawString(awal + 2, brs2 + 2, str(nomor))
def _draw_barcodearea(self, canvas: Canvas, op: OrderPosition, o: dict): reqs = float(o['size']) * mm qrw = QrCodeWidget(op.secret, barLevel='H', barHeight=reqs, barWidth=reqs) d = Drawing(reqs, reqs) d.add(qrw) qr_x = float(o['left']) * mm qr_y = float(o['bottom']) * mm renderPDF.draw(d, canvas, qr_x, qr_y)
def draw_qr_data(canvas, data, size, position): qr = QrCodeWidget(data) qr_draw = Drawing( size, size, transform=[size / qr.barWidth, 0, 0, size / qr.barHeight, 0, 0]) qr_draw.add(qr) renderPDF.draw(qr_draw, canvas, position[0], position[1])
def test_qr_code_with_comma(self): from reportlab.graphics.barcode.qr import QrCodeWidget from reportlab.graphics.shapes import Drawing i = QrCodeWidget("VALUE WITH A COMMA,") x0, y0, x1, y1 = i.getBounds() D = Drawing(x1-x0, y1-y0) D.add(i) D.save(['gif','pict','pdf'], outDir=self.outDir, fnRoot="QR_with_comma")
def generate_qr(self, text): pass qr_code = QrCodeWidget(text, barLevel='M') bounds = qr_code.getBounds() width = bounds[2] - bounds[0] height = bounds[3] - bounds[1] self.qr_draw = Drawing( 20, 20, transform=[40. / width, 0, 0, 40. / height, 0, 0]) self.qr_draw.add(qr_code)
def create_qrcode(value, size=50): d = Drawing(size, size) qr = QrCodeWidget(value=value, barWidth=size, barHeight=size) d.add(qr) return Image( value=renderPM.drawToString(d, fmt="png"), format='png', width=size, height=size, )
def create_qr_code(text): qrw = QrCodeWidget(text) b = qrw.getBounds() w = b[2] - b[0] h = b[3] - b[1] d = Drawing(45, 45, transform=[90. / w, 0, 0, 90. / h, 0, 0]) d.add(qrw) return d
def draw_qr(c, text, x0, y0, w, h): """Draws a single QR code. """ q = QrCodeWidget(text) b = q.getBounds() d = Drawing(w, h, transform=[w / (b[2] - b[0]), 0, 0, h / (b[3] - b[1]), 0, 0]) d.add(q) renderPDF.draw(d, c, x0, y0)
def qr_code_drawing(text_value, name): qrw = QrCodeWidget(text_value) b = qrw.getBounds() w = b[2] - b[0] h = b[3] - b[1] d = Drawing(120, 120, transform=[120. / w, 0, 0, 120. / h, 0, 0]) d.add(qrw) dir = settings.BASE_DIR d.save(formats=['png'], outDir=os.path.join(dir, 'static/barcode'), fnRoot=str(name))
def draw_labels(self, p, index, item, ct): pos = self.coords[index] qrw = QrCodeWidget( settings.LABEL_DISPATCHER_URL + base64.urlsafe_b64encode(uuid.UUID(item.uuid).bytes).rstrip('='), barBorder=0, barWidth=16 * mm, barHeight=16 * mm) width, height = A4 d = Drawing(32, 32) d.add(qrw) renderPDF.draw(d, p, pos[0] * mm + 2 * mm, height - pos[1] * mm + 1 * mm - self.dimension[1] * mm)
def _draw_barcodearea(self, canvas: Canvas, op: OrderPosition, o: dict): content = o.get('content', 'secret') if content == 'secret': content = op.secret elif content == 'pseudonymization_id': content = op.pseudonymization_id reqs = float(o['size']) * mm qrw = QrCodeWidget(content, barLevel='H', barHeight=reqs, barWidth=reqs) d = Drawing(reqs, reqs) d.add(qrw) qr_x = float(o['left']) * mm qr_y = float(o['bottom']) * mm renderPDF.draw(d, canvas, qr_x, qr_y)
def _draw_qr(self, canvas, doc): canvas.saveState() qrw = QrCodeWidget(urljoin( settings.SITE_URL, reverse('job.detail', kwargs={'pk': self.obj.pk})), barHeight=20 * mm, barWidth=20 * mm) d = Drawing(20 * mm, 20 * mm) d.add(qrw) qr_x = 175 * mm qr_y = 2.2 * mm renderPDF.draw(d, canvas, qr_x, qr_y) canvas.restoreState()
def draw(self): # here standard and documented QrCodeWidget usage on # Flowable canva qr_code = QrCodeWidget(self.qr_value, barBorder=self.border, y=self.border) bounds = qr_code.getBounds() qr_width = (bounds[2] - bounds[0]) qr_height = (bounds[3] - bounds[1]) _width = float(self.width) drawing = Drawing( _width, _width, transform=[_width / qr_width, 0, 0, _width / qr_height, 0, 0]) drawing.add(qr_code) renderPDF.draw(drawing, self.canv, 0, 0)
def draw_qr_code(c, x, y, qr_data): # QR code qr_code = QrCodeWidget(qr_data) bounds = qr_code.getBounds() qr_width = bounds[2] - bounds[0] qr_height = bounds[3] - bounds[1] # 180 = new height and width d = Drawing(180, 180, transform=[180. / qr_width, 0, 0, 180. / qr_height, 0, 0]) d.add(qr_code) # 22 = qr code border width renderPDF.draw(d, c, x - 22, y)
def add_qr_code(self, x, y, text): """ Metodo utilizado para crear un codigo QR dentro del pdf """ pdf_canvas = self.__get_object_pdf_canvas() # codigo QR qrw = QrCodeWidget(text) bounds = qrw.getBounds() w = bounds[2] - bounds[0] h = bounds[3] - bounds[1] d = Drawing(45, 45, transform=[140. / w, 0, 0, 140. / h, x, y]) d.add(qrw) renderPDF.draw(d, pdf_canvas, 1, 1) return self
def _draw_barcodearea(self, canvas: Canvas, o: dict, row: dict): content = row.get("qrcode", "Missing qrcode column") level = 'H' if len(content) > 32: level = 'M' if len(content) > 128: level = 'L' reqs = float(o['size']) * mm qrw = QrCodeWidget(content, barLevel=level, barHeight=reqs, barWidth=reqs) d = Drawing(reqs, reqs) d.add(qrw) qr_x = float(o['left']) * mm qr_y = float(o['bottom']) * mm renderPDF.draw(d, canvas, qr_x, qr_y)
def draw_labels(self, p, index, item, ct): pos = self.coords[index] qrw = QrCodeWidget( settings.LABEL_DISPATCHER_URL + base64.urlsafe_b64encode(uuid.UUID(item.uuid).bytes).rstrip('='), barBorder=0, barWidth=12 * mm, barHeight=12 * mm) width, height = A4 corrected_height = height - pos[1] * mm + 1 * mm - self.dimension[ 1] * mm d = Drawing(self.dimension[0] * mm, self.dimension[1] * mm) d.add(qrw) # unique name # type/location/besitzer textobject = p.beginText() textobject.setTextOrigin(pos[0] * mm + 17 * mm, corrected_height + self.dimension[1] * mm - 9) textobject.setFont("Helvetica", 9) if ct == 11: text = u'%s Type: %s; Loc: %s; Pers: %s' % ( item.unique_name, u' -> '.join([ unicode(x) for x in item.type.get_ancestors(include_self=True) ]), u' -> '.join([ unicode(x) for x in item.location.get_ancestors(include_self=True) ]), u', '.join( [unicode(x.nickname) for x in item.persons.all()])) elif ct == 8: text = u'%s; %s; In: %s' % ( item.name, item.description_short, u' -> '.join( [unicode(x) for x in item.get_ancestors()])) else: pass textobject.textLines(textwrap.wrap(text, 30)) p.drawText(textobject) # p.rect(pos[0]*mm, corrected_height, self.dimension[0]*mm, self.dimension[1]*mm, fill=0, stroke=1) renderPDF.draw(d, p, pos[0] * mm + 4 * mm, corrected_height + 6 * mm)
def sai(response): response = HttpResponse(mimetype='application/pdf') response['Content-Disposition'] = 'attachment; filename="somefilename.pdf"' p = canvas.Canvas(response) qrw = QrCodeWidget('Helo World!') b = qrw.getBounds() w = b[2] - b[0] h = b[3] - b[1] d = Drawing(45, 45, transform=[45. / w, 0, 0, 45. / h, 0, 0]) d.add(qrw) renderPDF.draw(d, p, 1, 1) p.showPage() p.save() return response
def create_overlay(ass, certificate): month_names = [ "", "Jan", "Feb", "March", "Apr", "May", "June", "July", "Aug", "Sep", "Oct", "Nov", "Dec" ] register_fonts() c = canvas.Canvas('temp_overlay.pdf', pagesize=landscape(A4)) c.setFillColorRGB(0, 0, 0) c.setFont("Montserrat", 25) c.drawCentredString(11 * cm, 12 * cm, f'{ass.person.first_name} {ass.person.last_name}') c.setFont("Montserrat", 17) c.drawString( 22 * cm, 8 * cm, f'{month_names[ass.finished_date_time.month]} {str(ass.finished_date_time.day).zfill(2)}, {ass.finished_date_time.year}' ) c.drawString(22 * cm, 7 * cm, f'{ass.total_score()}%') c.setFont("Montserrat", 25) c.setFillColorRGB(0.29, 0.37, 0.81) c.drawCentredString(11 * cm, 9 * cm, f'{ass.quiz_structure.name}') qrw = QrCodeWidget( f'https://cert.dsacademy.kz/media/{certificate.permanent_link}') b = qrw.getBounds() w = b[2] - b[0] h = b[3] - b[1] size = 170 d = Drawing(1, 1, transform=[size / w, 0, 0, size / h, 0, 0]) d.add(qrw) renderPDF.draw(d, c, 27.3 * cm - size, 15 * cm - size) c.save()
def get_overlay_canvas() -> io.BytesIO: global zipcode zipcode = str(zipcode) data = io.BytesIO() pdf = canvas.Canvas(data) pdf.drawString(x=92, y=702, text=firstname + ' ' + lastname) pdf.drawString(x=92, y=684, text=birthday) pdf.drawString(x=214, y=684, text=placeofbirth) pdf.drawString(x=104, y=665, text=address + ' ' + zipcode + ' ' + city) pdf.drawString(x=47, y=dic_reason[reason], text='X') pdf.drawString(x=78, y=76, text=ccity) pdf.drawString(x=63, y=58, text=date) pdf.drawString(x=227, y=58, text=hour) #QRCode Zone text_QrCode="Cree le: "+date+" a "+hourh+";\n"\ " Nom: "+lastname+";\n"\ " Prenom: "+firstname+";\n"\ " Naissance: "+birthday+" a "+placeofbirth+";\n"\ " Adresse: "+address+" "+zipcode+" "+city+";\n"\ " Sortie: "+date+" a "+hour+";\n"\ " Motifs: "+reason qrw = QrCodeWidget(text_QrCode) b = qrw.getBounds() w = b[2] - b[0] h = b[3] - b[1] d = Drawing(92, 92, transform=[100. / w, 0, 0, 100. / h, 0, 0]) d.add(qrw) renderPDF.draw(d, pdf, 435, 25) pdf.showPage() d = Drawing(300, 300, transform=[340. / w, 0, 0, 340. / h, 0, 0]) d.add(qrw) renderPDF.draw(d, pdf, 50, 450) pdf.save() data.seek(0) return data
def PreencheFolhaOcorrencia(myCanvas, disciplina): margin = 2 * cm marginleft = margin margintop = height - 1.1 * margin myCanvas.setFont('Helvetica-Bold', 12) myCanvas.drawString(marginleft + 1.1 * cm, 25.4 * cm, disciplina.nomePolo) myCanvas.drawString(marginleft + 11.6 * cm, 25.4 * cm, disciplina.data) # Coloca QR-Code no canto superior direito codigo = disciplina.dataStr + '-' + disciplina.polo + '-ocorrencia' qrw = QrCodeWidget(codigo) qrsize = 100.0 b = qrw.getBounds() w = b[2] - b[0] h = b[3] - b[1] d = Drawing(qrsize, qrsize, transform=[qrsize/w, 0, 0, qrsize/h, 0, 0]) d.add(qrw) renderPDF.draw(d, myCanvas, 16 * cm, margintop - h + 28) return
def download_pdf(modeladmin, request, queryset): if request.user.is_authenticated: response = HttpResponse(content_type="application/pdf") response[ "Content-Disposition"] = "attachment; filename=group_qr_codes.pdf" p = canvas.Canvas(response) users = queryset # User.objects.filter(group__id=pk) per_page = 6 x_offset = 0 y_offset = 0 step = 130 margin = 50 for i, user in enumerate(users): qrw = QrCodeWidget(user.code) d = Drawing(50, 50) d.add(qrw) renderPDF.draw(d, p, margin + x_offset, margin + y_offset) p.drawString(margin + x_offset, margin + y_offset - 10, user.name) y_offset += step if i % per_page == per_page - 1: x_offset += step + 60 y_offset = 0 if i % (per_page * 3) == (per_page * 3) - 1: p.showPage() x_offset = 0 y_offset = 0 p.save() return response else: return HttpResponse("Unauthorized", status=403)
def addPageNumber(canvas, doc): """ Add the page number """ print doc.contract now = datetime.datetime.now(pytz.timezone('Asia/Kolkata')) passKey = '%s%s' % (str(doc.request.user.date_joined.year), doc.request.user.pk) # also the user ID docID = '%s%s%s' % (doc.contract.deal.pk, now.year, doc.contract.pk) qrw = QrCodeWidget( 'http://cioc.co.in/documents?id=%s&passkey=%s&app=crmInvoice' % (docID, passKey)) b = qrw.getBounds() w = b[2] - b[0] h = b[3] - b[1] d = Drawing(60, 60, transform=[60. / w, 0, 0, 60. / h, 0, 0]) d.add(qrw) renderPDF.draw(d, canvas, 180 * mm, 270 * mm) pass
def run(): styles = getSampleStyleSheet() styleN = styles['Normal'] styleH = styles['Heading1'] story = [] storyAdd = story.append #for codeNames in code storyAdd(Paragraph('I2of5', styleN)) storyAdd(I2of5(1234, barWidth=inch * 0.02, checksum=0)) storyAdd(Paragraph('MSI', styleN)) storyAdd(MSI(1234)) storyAdd(Paragraph('Codabar', styleN)) storyAdd(Codabar("A012345B", barWidth=inch * 0.02)) storyAdd(Paragraph('Code 11', styleN)) storyAdd(Code11("01234545634563")) storyAdd(Paragraph('Code 39', styleN)) storyAdd(Standard39("A012345B%R")) storyAdd(Paragraph('Extended Code 39', styleN)) storyAdd(Extended39("A012345B}")) storyAdd(Paragraph('Code93', styleN)) storyAdd(Standard93("CODE 93")) storyAdd(Paragraph('Extended Code93', styleN)) storyAdd(Extended93("L@@K! Code 93 :-)")) #, barWidth=0.005 * inch)) storyAdd(Paragraph('Code 128', styleN)) storyAdd(Code128("AB-12345678")) storyAdd(Paragraph('Code 128 Auto', styleN)) storyAdd(Code128Auto("AB-12345678")) storyAdd(Paragraph('USPS FIM', styleN)) storyAdd(FIM("A")) storyAdd(Paragraph('USPS POSTNET', styleN)) storyAdd(POSTNET('78247-1043')) storyAdd(Paragraph('USPS 4 State', styleN)) storyAdd(USPS_4State('01234567094987654321', '01234567891')) from reportlab.graphics.barcode import createBarcodeDrawing storyAdd(Paragraph('EAN13', styleN)) storyAdd(createBarcodeDrawing('EAN13', value='123456789012')) storyAdd(Paragraph('EAN13 quiet=False', styleN)) storyAdd(createBarcodeDrawing('EAN13', value='123456789012', quiet=False)) storyAdd(Paragraph('EAN8', styleN)) storyAdd(createBarcodeDrawing('EAN8', value='1234567')) storyAdd(PageBreak()) storyAdd(Paragraph('EAN5 price=True', styleN)) storyAdd(createBarcodeDrawing('EAN5', value='11299', price=True)) storyAdd(Paragraph('EAN5 price=True quiet=False', styleN)) storyAdd( createBarcodeDrawing('EAN5', value='11299', price=True, quiet=False)) storyAdd(Paragraph('EAN5 price=False', styleN)) storyAdd(createBarcodeDrawing('EAN5', value='11299', price=False)) storyAdd(Paragraph('ISBN alone', styleN)) storyAdd(createBarcodeDrawing('ISBN', value='9781565924796')) storyAdd(Paragraph('ISBN with ean5 price', styleN)) storyAdd(createBarcodeDrawing('ISBN', value='9781565924796', price='01299')) storyAdd(Paragraph('ISBN with ean5 price, quiet=False', styleN)) storyAdd( createBarcodeDrawing('ISBN', value='9781565924796', price='01299', quiet=False)) storyAdd(Paragraph('UPCA', styleN)) storyAdd(createBarcodeDrawing('UPCA', value='03600029145')) storyAdd(Paragraph('USPS_4State', styleN)) storyAdd( createBarcodeDrawing('USPS_4State', value='01234567094987654321', routing='01234567891')) storyAdd(Paragraph('QR', styleN)) storyAdd(createBarcodeDrawing('QR', value='01234567094987654321')) storyAdd(Paragraph('QR', styleN)) storyAdd( createBarcodeDrawing('QR', value='01234567094987654321', x=30, y=50)) storyAdd(Paragraph('QR in drawing at (0,0)', styleN)) d = Drawing(100, 100) d.add( Rect(0, 0, 100, 100, strokeWidth=1, strokeColor=colors.red, fillColor=None)) d.add(QrCodeWidget(value='01234567094987654321')) storyAdd(d) storyAdd(Paragraph('QR in drawing at (10,10)', styleN)) d = Drawing(100, 100) d.add( Rect(0, 0, 100, 100, strokeWidth=1, strokeColor=colors.red, fillColor=None)) d.add(Line(7.5, 10, 12.5, 10, strokeWidth=0.5, strokeColor=colors.blue)) d.add(Line(10, 7.5, 10, 12.5, strokeWidth=0.5, strokeColor=colors.blue)) d.add(QrCodeWidget(value='01234567094987654321', x=10, y=10)) storyAdd(d) storyAdd(Paragraph('Label Size', styleN)) storyAdd(XBox((2.0 + 5.0 / 8.0) * inch, 1 * inch, '1x2-5/8"')) storyAdd(Paragraph('Label Size', styleN)) storyAdd(XBox((1.75) * inch, .5 * inch, '1/2x1-3/4"')) SimpleDocTemplate('out.pdf').build(story) print('saved out.pdf')
def reporte_peso_neto(self): today = datetime.now() response = HttpResponse(content_type='application/pdf') # se crea el nombre del archivo de la descarga pdf pdf_name = 'peso_neto_{}.pdf'.format(today.strftime("%Y%m%d")) response['Content-Disposition'] = 'inline; filename={}'.format( pdf_name) # se crea el buffer de memoria para generar el documento buffer = BytesIO() pdftam = (8 * cm, 21 * cm) pdf = canvas.Canvas(buffer, pagesize=pdftam) pdf.setFont('Helvetica-Bold', 12) pdf.drawCentredString(115, 575, "BOLETA DE PESAJE") pdf.line(55, 573, 175, 573) pdf.setFont('Helvetica-Bold', 10) pdf.drawString(5, 545, "=====================================") pdf.drawString(5, 425, "=====================================") pdf.setFont('Helvetica-Bold', 10) pdf.drawRightString(175, 560, self.__carga.numero) pdf.setFont('Helvetica-Bold', 12) pdf.drawRightString(218, 365, self.__carga.numero) pdf.drawRightString(218, 160, self.__carga.numero) pdf.setFont('Helvetica', 6) pdf.drawString(15, 420, self.__carga.usuario.username) pdf.drawRightString(215, 420, today.strftime("%H:%M:%S")) pdf.setFont('Helvetica', 7) pdf.drawString(55, 560, "Nº PESAJE:") pdf.drawString(10, 530, "FECHA:") pdf.drawString(10, 520, "Nº PLACA VEHIC.:") pdf.drawString(10, 510, "CONDUCTOR:") pdf.drawString(10, 500, "CARGUIO:") pdf.drawString(10, 490, "PROVEEDOR:") pdf.drawString(10, 480, "ORIGEN CARGA:") pdf.drawString(10, 470, "DESTINO CARGA:") pdf.drawString(10, 460, "PESO BRUTO (Kg):") pdf.drawString(10, 450, "PESO TARA (Kg):") pdf.drawString(10, 440, "PESO NETO (Tn):") locale.setlocale(locale.LC_TIME, 'es_ES.utf-8') pdf.drawString(75, 530, self.__carga.created.strftime("%d/%m/%Y %H:%M:%S")) pdf.drawString(75, 520, self.__carga.vehiculo.placa) pdf.drawString( 75, 510, '{} {}'.format(self.__carga.conductor_vehiculo.apellidos, self.__carga.conductor_vehiculo.nombres)) if self.__carga.equipo_carguio: pdf.drawString( 75, 500, '{} {}'.format(self.__carga.equipo_carguio.apellidos, self.__carga.equipo_carguio.nombres)) else: pdf.drawString(75, 500, '') pdf.drawString(75, 490, str(self.__carga.proveedor)) pdf.drawString(75, 480, str(self.__carga.origen)) pdf.drawString(75, 470, str(self.__carga.destino)) pdf.drawRightString(215, 460, numero_decimal(self.__carga.peso_bruto)) pdf.drawRightString(215, 450, numero_decimal(self.__carga.peso_tara)) pdf.drawRightString(215, 440, numero_decimal(self.__carga.peso_neto_tn)) pdf.setFont('Helvetica-Bold', 24) pdf.drawString(15, 365, "A") pdf.drawString(15, 160, "B") qrw = QrCodeWidget('{}{}'.format( 'http://190.104.10.157', reverse_lazy('pesaje-detail', kwargs={'pk': self.__carga.id}))) b = qrw.getBounds() w = b[2] - b[0] h = b[3] - b[1] d = Drawing(60, 60, transform=[60. / w, 0, 0, 60. / h, 0, 0]) d.add(qrw) renderPDF.draw(d, pdf, 161.5, 60) renderPDF.draw(d, pdf, 161.5, 265) pdf.rect(15, 320, 5 * cm, 1 * cm, stroke=1, fill=0) pdf.rect(15, 280, 5 * cm, 1 * cm, stroke=1, fill=0) pdf.rect(15, 240, 5 * cm, 1 * cm, stroke=1, fill=0) pdf.rect(164, 268, 1.9 * cm, 1.9 * cm, stroke=1, fill=0) pdf.rect(15, 115, 5 * cm, 1 * cm, stroke=1, fill=0) pdf.rect(15, 75, 5 * cm, 1 * cm, stroke=1, fill=0) pdf.rect(15, 35, 5 * cm, 1 * cm, stroke=1, fill=0) pdf.rect(164, 63, 1.9 * cm, 1.9 * cm, stroke=1, fill=0) pdf.setDash(1, 2) pdf.line(5, 400, 222, 400) pdf.line(5, 203, 222, 203) pdf.save() pdf = buffer.getvalue() buffer.close() response.write(pdf) return response