def pdf(data, loc, selfil): filename = str(loc) + "/" + str(data[0]) + "_election_.pdf" c = canvas.Canvas(filename, pagesize=portrait(A4)) c.drawInlineImage("gov1.png", 20, 740, width=None, height=None) c.drawInlineImage("gov2.png", 460, 740, width=None, height=None) #c.setFont('Times-Bold', 18,leading=0) c.drawString(250, 675, "Confidential ! ") c.rect(20, 430, 545, 230) vid = "Voter ID: " + str(data[9]) c.drawString(35, 640, vid) cid = "Citizenship ID Number: " + str(data[8]) c.drawString(35, 625, cid) usr = "******" + data[0] c.drawString(35, 610, usr) pw = "Password: "******"Date of Birth: " + str(data[5]) c.drawString(35, 580, dob) eml = "Email: " + str(data[1]) c.drawString(35, 565, eml) phon = "Phone Number: " + str(data[2]) c.drawString(35, 550, phon) add = "Address: " + str(data[3]) c.drawString(35, 535, add) c.drawString(35, 520, "Province: 1") c.drawInlineImage(selfil, 440, 540, width=115, height=110) bar = code93.Extended93(str(data[9])) # bar.barHeight=50 # bar.barWidth=100 bar.drawOn(c, 440, 500) print("dd") c.save()
def _flowable(self, node, extra_style=None): if node.tag == 'para': style = self.styles.para_style_get(node) if extra_style: style.__dict__.update(extra_style) result = [] for i in self._textual(node).split('\n'): result.append( platypus.Paragraph( i, style, **(utils.attr_get(node, [], {'bulletText': 'str'})))) return result elif node.tag == 'barCode': try: from reportlab.graphics.barcode import code128 from reportlab.graphics.barcode import code39 from reportlab.graphics.barcode import code93 from reportlab.graphics.barcode import common from reportlab.graphics.barcode import fourstate from reportlab.graphics.barcode import usps except Exception, e: return None args = utils.attr_get( node, [], { 'ratio': 'float', 'xdim': 'unit', 'height': 'unit', 'checksum': 'int', 'quiet': 'int', 'width': 'unit', 'stop': 'bool', 'bearers': 'int', 'barWidth': 'float', 'barHeight': 'float' }) codes = { 'codabar': lambda x: common.Codabar(x, **args), 'code11': lambda x: common.Code11(x, **args), 'code128': lambda x: code128.Code128(x, **args), 'standard39': lambda x: code39.Standard39(x, **args), 'standard93': lambda x: code93.Standard93(x, **args), 'i2of5': lambda x: common.I2of5(x, **args), 'extended39': lambda x: code39.Extended39(x, **args), 'extended93': lambda x: code93.Extended93(x, **args), 'msi': lambda x: common.MSI(x, **args), 'fim': lambda x: usps.FIM(x, **args), 'postnet': lambda x: usps.POSTNET(x, **args), } code = 'code128' if node.get('code'): code = node.get('code').lower() return codes[code](self._textual(node))
def code93_demo(barcode_value): doc = SimpleDocTemplate('code93_demo.pdf') styles = getSampleStyleSheet() flowables = [] flowables.append(Paragraph('Code 93 Standard:', style=styles['Normal'])) barcode93Std = code93.Standard93() flowables.append(barcode93Std) flowables.append(Spacer(0, 25)) flowables.append(Paragraph('Code 93 Extended:', style=styles['Normal'])) barcode93 = code93.Extended93(barcode_value) flowables.append(barcode93) doc.build(flowables)
def pdf(request,data): buffer=io.BytesIO() filename=str(data[0])+"_election_.pdf" c=canvas.Canvas(buffer,pagesize=portrait(A4)) media=settings.MEDIA_ROOT # os.open("/media/gov1.png",flags=os.O_RDONLY) c.drawInlineImage(media+"/gov1.png",20,740,width=None,height=None) c.drawInlineImage(media+"/gov2.png", 460, 740, width=None, height=None) #c.setFont('Times-Bold', 18,leading=0) c.drawInlineImage(media+"/conf.png", 215, 675, width=150, height=17) c.rect(20,430,545,230) vid="Voter ID: "+str(data[3]) c.drawString(35,640,vid) cid="Citizenship ID Number: "+str(data[4]) c.drawString(35, 625,cid) usr="******"+data[0] c.drawString(35, 610,usr) pw="Full Name: "+str(data[1]) c.drawString(35, 595, pw) dob="Date of Birth: "+str(data[7]) c.drawString(35, 580, dob) eml="Email: "+str(data[2]) c.drawString(35, 565, eml) phon="Phone Number: "+str(data[5]) c.drawString(35, 550, phon) add="Address: "+str(data[6]) c.drawString(35, 535, add) c.drawString(35, 520, "Province: "+str(data[10])) c.drawString(35, 505, "Remark: " + str(data[9])) c.drawString(35, 490, "Vote Status: " + str(data[14])) c.drawInlineImage(media+"/"+str(data[11]), 475, 575, width=85, height=80) try: c.drawInlineImage(str(data[15]), 140, 500, width=20, height=20) except: pass bar=code93.Extended93(str(data[3])) # bar.barHeight=50 # bar.barWidth=100 bar.drawOn(c,472,545) c.drawInlineImage(media + "/" + str(data[12]), 170, 250, width=280, height=150) c.drawInlineImage(media + "/" + str(data[13]), 170, 50, width=280, height=150) c.showPage() c.save() buffer.seek(io.SEEK_SET) return FileResponse(buffer,as_attachment=True,filename=filename)
def _flowable(self, node, extra_style=None): if node.tag=='pto': return self._pto(node) if node.tag=='para': style = self.styles.para_style_get(node) if extra_style: style.__dict__.update(extra_style) result = [] for i in self._textual(node).split('\n'): result.append(platypus.Paragraph(i, style, **(utils.attr_get(node, [], {'bulletText':'str'})))) return result elif node.tag=='barCode': try: from reportlab.graphics.barcode import code128 from reportlab.graphics.barcode import code39 from reportlab.graphics.barcode import code93 from reportlab.graphics.barcode import common from reportlab.graphics.barcode import fourstate from reportlab.graphics.barcode import usps from reportlab.graphics.barcode import createBarcodeDrawing except ImportError: _logger.warning("Cannot use barcode renderers:", exc_info=True) return None args = utils.attr_get(node, [], {'ratio':'float','xdim':'unit','height':'unit','checksum':'int','quiet':'int','width':'unit','stop':'bool','bearers':'int','barWidth':'float','barHeight':'float'}) codes = { 'codabar': lambda x: common.Codabar(x, **args), 'code11': lambda x: common.Code11(x, **args), 'code128': lambda x: code128.Code128(str(x), **args), 'standard39': lambda x: code39.Standard39(str(x), **args), 'standard93': lambda x: code93.Standard93(str(x), **args), 'i2of5': lambda x: common.I2of5(x, **args), 'extended39': lambda x: code39.Extended39(str(x), **args), 'extended93': lambda x: code93.Extended93(str(x), **args), 'msi': lambda x: common.MSI(x, **args), 'fim': lambda x: usps.FIM(x, **args), 'postnet': lambda x: usps.POSTNET(x, **args), 'ean13': lambda x: createBarcodeDrawing('EAN13', value=str(x), **args), 'qrcode': lambda x: createBarcodeDrawing('QR', value=x, **args), } code = 'code128' if node.get('code'): code = node.get('code').lower() return codes[code](self._textual(node)) elif node.tag=='name': self.styles.names[ node.get('id')] = node.get('value') return None elif node.tag=='xpre': style = self.styles.para_style_get(node) return platypus.XPreformatted(self._textual(node), style, **(utils.attr_get(node, [], {'bulletText':'str','dedent':'int','frags':'int'}))) elif node.tag=='pre': style = self.styles.para_style_get(node) return platypus.Preformatted(self._textual(node), style, **(utils.attr_get(node, [], {'bulletText':'str','dedent':'int'}))) elif node.tag=='illustration': return self._illustration(node) elif node.tag=='blockTable': return self._table(node) elif node.tag=='title': styles = reportlab.lib.styles.getSampleStyleSheet() style = styles['Title'] return platypus.Paragraph(self._textual(node), style, **(utils.attr_get(node, [], {'bulletText':'str'}))) elif re.match('^h([1-9]+[0-9]*)$', (node.tag or '')): styles = reportlab.lib.styles.getSampleStyleSheet() style = styles['Heading'+str(node.tag[1:])] return platypus.Paragraph(self._textual(node), style, **(utils.attr_get(node, [], {'bulletText':'str'}))) elif node.tag=='image': image_data = False if not node.get('file'): if node.get('name'): if node.get('name') in self.doc.images: _logger.debug("Image %s read ", node.get('name')) image_data = self.doc.images[node.get('name')].read() else: _logger.warning("Image %s not defined", node.get('name')) return False else: import base64 newtext = node.text if self.localcontext: newtext = utils._process_text(self, node.text or '') image_data = base64.decodestring(newtext) if not image_data: _logger.debug("No inline image data") return False image = StringIO(image_data) else: _logger.debug("Image get from file %s", node.get('file')) image = _open_image(node.get('file'), path=self.doc.path) return platypus.Image(image, mask=(250,255,250,255,250,255), **(utils.attr_get(node, ['width','height']))) elif node.tag=='spacer': if node.get('width'): width = utils.unit_get(node.get('width')) else: width = utils.unit_get('1cm') length = utils.unit_get(node.get('length')) return platypus.Spacer(width=width, height=length) elif node.tag=='section': return self.render(node) elif node.tag == 'pageNumberReset': return PageReset() elif node.tag in ('pageBreak', 'nextPage'): return platypus.PageBreak() elif node.tag=='condPageBreak': return platypus.CondPageBreak(**(utils.attr_get(node, ['height']))) elif node.tag=='setNextTemplate': return platypus.NextPageTemplate(str(node.get('name'))) elif node.tag=='nextFrame': return platypus.CondPageBreak(1000) # TODO: change the 1000 ! elif node.tag == 'setNextFrame': from reportlab.platypus.doctemplate import NextFrameFlowable return NextFrameFlowable(str(node.get('name'))) elif node.tag == 'currentFrame': from reportlab.platypus.doctemplate import CurrentFrameFlowable return CurrentFrameFlowable(str(node.get('name'))) elif node.tag == 'frameEnd': return EndFrameFlowable() elif node.tag == 'hr': width_hr=node.get('width') or '100%' color_hr=node.get('color') or 'black' thickness_hr=node.get('thickness') or 1 lineCap_hr=node.get('lineCap') or 'round' return platypus.flowables.HRFlowable(width=width_hr,color=color.get(color_hr),thickness=float(thickness_hr),lineCap=str(lineCap_hr)) else: sys.stderr.write('Warning: flowable not yet implemented: %s !\n' % (node.tag,)) return None