def draw_debug_outline(self, config): """draw an outline around the box""" canvas = self.canvas # don't muck up the external state canvas.saveState() # discreet - but visible canvas.setStrokeColorRGB(0.9, 0.7, 0.7) canvas.setFillColorRGB(0.6, 0.6, 0.6) canvas.setFont('Helvetica', 8) # draw a box to show the extent canvas.rect( config['x'], config['y'], config['w'], config['h'], stroke=1, fill=0, ) # put in some debug info canvas.drawRightString(config['x'] + config['w'], config['y'] + 4, ', '.join(config['content'])) # restore state canvas.restoreState()
def first_page_boxes(canvas): #Box1 canvas.setStrokeColorRGB(0, 0, 0) canvas.rect(20, 504, 270, 117) canvas.line(20, 599, 290, 599) canvas.setFont('palab', 9) canvas.drawString(40, 605, 'Bill To:') canvas.setFont('pala', 9) #Dynamic canvas.drawString(40, 585, 'Test Orders Invoices') canvas.drawString(40, 573, '123 Center Str') canvas.drawString(40, 561, 'Boko Town, Boko 999999') #Box2 canvas.rect(310, 504, 270, 117) canvas.line(310, 599, 580, 599) canvas.setFont('palab', 9) canvas.drawString(320, 605, 'Order Information:') canvas.drawString(320, 585, 'Order Date: ') canvas.drawString(320, 573, 'Order Name: ') canvas.drawString(320, 561, 'Client Matter Number: ') canvas.drawString(320, 549, 'Total Amount Due: ') canvas.drawString(320, 537, 'Processed By: ') canvas.drawString(320, 525, 'Authorized By: ') canvas.setFont('pala', 9) canvas.drawString(390, 585, 'April 14, 2021') canvas.drawString(390, 573, 'Test orders Aaron') #canvas.drawString(390, 561,'Client Matter Number: ') canvas.drawString(405, 549, '$144945') canvas.drawString(390, 537, 'Aaron Sauber') canvas.drawString(390, 525, 'Judith Testing')
def prepare_first_page(canvas, document): p1 = Paragraph(presentation.title, styles['Heading']) p2 = Paragraph( presentation.owner.get_full_name(), styles['SubHeading']) avail_width = width - inch avail_height = height - inch w1, h1 = p1.wrap(avail_width, avail_height) w2, h2 = p2.wrap(avail_width, avail_height) f = Frame( inch / 2, inch / 2, width - inch, height - inch, leftPadding=0, bottomPadding=0, rightPadding=0, topPadding=0 ) f.addFromList([p1, p2], canvas) document.pageTemplate.frames[0].height -= h1 + h2 + inch / 2 document.pageTemplate.frames[1].height -= h1 + h2 + inch / 2 canvas.saveState() canvas.setStrokeColorRGB(0, 0, 0) canvas.line( width / 2, inch / 2, width / 2, height - inch - h1 - h2) canvas.restoreState()
def drawCutlines(canvas): canvas.setStrokeColorRGB(255,0,0) canvas.circle(6*scale_num,6*scale_num, hole_rad*scale_num/2, stroke=1, fill=0) canvas.circle(6*scale_num,6*scale_num, diameter*scale_num/2, stroke=1, fill=0) return canvas
def draw_debug_outline(self, config ): """draw an outline around the box""" canvas = self.canvas # don't muck up the external state canvas.saveState() # discreet - but visible canvas.setStrokeColorRGB( 0.9, 0.7, 0.7 ) canvas.setFillColorRGB( 0.6, 0.6, 0.6 ) canvas.setFont( 'Helvetica', 8 ) # draw a box to show the extent canvas.rect( config['x'], config['y'], config['w'], config['h'], stroke=1, fill=0, ) # put in some debug info canvas.drawRightString( config['x'] + config['w'], config['y'] + 4, ', '.join(config['content']) ) # restore state canvas.restoreState()
def prepare_first_page(canvas, document): p1 = Paragraph(presentation.title, styles['Heading']) p2 = Paragraph(presentation.owner.get_full_name(), styles['SubHeading']) avail_width = width - inch avail_height = height - inch w1, h1 = p1.wrap(avail_width, avail_height) w2, h2 = p2.wrap(avail_width, avail_height) f = Frame(inch / 2, inch / 2, width - inch, height - inch, leftPadding=0, bottomPadding=0, rightPadding=0, topPadding=0) f.addFromList([p1, p2], canvas) document.pageTemplate.frames[0].height -= h1 + h2 + inch / 2 document.pageTemplate.frames[1].height -= h1 + h2 + inch / 2 canvas.saveState() canvas.setStrokeColorRGB(0, 0, 0) canvas.line(width / 2, inch / 2, width / 2, height - inch - h1 - h2) canvas.restoreState()
def myLaterPages(canvas, doc): PAGE_HEIGHT,PAGE_WIDTH = letter canvas.saveState() canvas.setPageSize(landscape(letter)) canvas.drawImage(frunt_pag2, 0,0, PAGE_WIDTH,PAGE_HEIGHT ) canvas.setStrokeColorRGB(0,1,1,alpha=0.1) ficha_no = doc.page-1 #canvas.setStrokeColorRGB(0.7,0.7,0.7) canvas.setFillColorRGB(0,0,0) SHOW_GRID = False if SHOW_GRID: n = 5 s = 200 canvas.setFillColorRGB(0,0,1) canvas.setFont('Helvetica',1) for x in range(s): for y in range(s): canvas.rect(x*n,y*n, width=n, height=n, stroke=1) canvas.drawString(x*n,y*n,"%s,%s" % ((x*n),(y*n)) ) # for i in range(s): # x= i*n # y=x # canvas.drawString(x,0,"%s" % (x)) #horizontal # canvas.drawString(0,y+1,"%s" % (x)) # vertical # canvas.drawString(x,600,"%s" % (x)) #horizontal # canvas.drawString(990,y,"%s" % (x)) # vertical # # canvas.setStrokeColorRGB(0,0,1,alpha=0.7) # canvas.setFont('Helvetica',1) # for i in range(610): # #canvas.rect(35,i*2, width=0.5, height=0.5, stroke=1) # canvas.drawString(35,i,"%s -" % (i,) ) canvas.setFont('Helvetica',7) LINE_1 = 508 #fecha_elaboracion = doc.fecha_elaboracion #if not fecha_elaboracion: # fecha_elaboracion = datetime.today() canvas.drawCentredString(137,LINE_1,str(fecha_elaboracion.year)) canvas.drawCentredString(162,LINE_1,str(fecha_elaboracion.month)) canvas.drawCentredString(180,LINE_1,str(fecha_elaboracion.day)) canvas.drawCentredString(290,LINE_1,"VALLE DEL CAUCA") canvas.drawCentredString(740,LINE_1,"Ficha No. %s" % (int(ficha_no)+int(no_ficha_inicial)-1)) canvas.setFont('Helvetica',5) canvas.drawString(75,115, "Elaboro: %s" % elaboro) canvas.drawString(215,115, "Reviso: %s" % reviso) canvas.restoreState()
def draw_angle_lines(canvas, angles, distance, pagesize, grey): "Draws oblique lines to help with pen positioning and serifs" angles = (float(x.strip()) for x in angles.split(",")) if grey: canvas.setStrokeColorRGB(0.7, 0.7, 0.7) for i in angles: draw_lines_for_angle(canvas, i, distance, pagesize)
def framePage(canvas): # Деление страницы на 4 зоны линиями canvas.setFont('Times-Roman', 20) canvas.setStrokeColorRGB(0, 0, 0) canvas.setLineWidth(1) canvas.line(w / 2, 0, w / 2, h) canvas.line(0, h / 2, w, h / 2)
def drawCrossHairs(canvas, x, y): """just a marker for checking text metrics - blue for fun""" canvas.saveState() canvas.setStrokeColorRGB(0, 1, 0) canvas.line(x - 6, y, x + 6, y) canvas.line(x, y - 6, x, y + 6) canvas.restoreState()
def highlight(canvas, x, y, width, color): canvas.setStrokeColorRGB(color[0], color[1], color[2]) canvas.setFillColorRGB(color[0], color[1], color[2]) canvas.rect(x - 3, y - 3, width - 2, LINE + 1, 1, 1) canvas.setStrokeColorRGB(0, 0, 0) canvas.setFillColorRGB(0, 0, 0)
def header_func(canvas): #logo = "/Users/riccardo/Desktop/Progetti/chibe/chibe/static/homepage.png" logo = "/home/django/static/homepage.png" canvas.setStrokeColorRGB(0.9, 0.5, 0.2) canvas.setFillColorRGB(0.2, 0.2, 0.2) canvas.setFont('Helvetica', 16) canvas.drawString(13 * cm, -2 * cm, 'Report transazioni Chibe') canvas.drawInlineImage(logo, 1 * cm, -3 * cm, 3 * cm, 3 * cm)
def framePage(canvas, title, pos): canvas.setFont('Times-Roman', 15) canvas.drawString(inch, pos * inch, title) canvas.setFont('Times-Roman', 10) canvas.drawCentredString(4.135 * inch, 0.75 * inch, 'Página %d' % canvas.getPageNumber()) #reset carefully afterwards canvas.setLineWidth(1) canvas.setStrokeColorRGB(0, 0, 0)
def drawlines(canvas): canvas.setStrokeColorRGB(0.2,0.5,0.3) canvas.line(0,0,70,70) textobject = canvas.beginText() textobject.setTextOrigin(51.2,749) textobject.textLines(''' LEFT FIELD LABS ''') canvas.drawText(textobject)
def draw_header(canvas): """ Draws the invoice header """ canvas.setStrokeColorRGB(176/255., 196/255., 222/255.) # canvas.setStrokeColorRGB(0.9, 0.5, 0.2) canvas.setFillColorRGB(0.2, 0.2, 0.2) canvas.setFont('Helvetica', 16) canvas.drawString(18 * cm, -1 * cm, 'Invoice') if consultant_logo_filename: canvas.drawInlineImage(consultant_logo_filename, 1 * cm, -1 * cm, 250, 16) canvas.setLineWidth(4) canvas.line(0, -1.25 * cm, 21.7 * cm, -1.25 * cm)
def framePage(canvas, title): canvas.setFont('Times-BoldItalic',20) canvas.drawString(inch, 10.5 * inch, title) canvas.setFont('Times-Roman',10) canvas.drawCentredString(4.135 * inch, 0.75 * inch, 'Page %d' % canvas.getPageNumber()) #reset carefully afterwards canvas.setLineWidth(1) canvas.setStrokeColorRGB(0,0,0)
def draw_header(canvas): """ Draws the invoice header """ canvas.setStrokeColorRGB(176 / 255., 196 / 255., 222 / 255.) # canvas.setStrokeColorRGB(0.9, 0.5, 0.2) canvas.setFillColorRGB(0.2, 0.2, 0.2) canvas.setFont('Helvetica', 16) canvas.drawString(18 * cm, -1 * cm, 'Invoice') if consultant_logo_filename: canvas.drawInlineImage(consultant_logo_filename, 1 * cm, -1 * cm, 250, 16) canvas.setLineWidth(4) canvas.line(0, -1.25 * cm, 21.7 * cm, -1.25 * cm)
def get_stamp_pdf(PROJ_NAME, PAGE_NO): from reportlab.pdfgen import canvas out_path = tempfile.mktemp(suffix=".pdf") canvas = canvas.Canvas(out_path, pagesize=A4) canvas.setLineWidth(.3) canvas.setFont('Segoe UI', 8) canvas.setStrokeColorRGB(0, 0, 0) canvas.setFillColorRGB(0, 0, 0) canvas.drawString(30, 10, "Feedback Report for {0}".format(PROJ_NAME)) canvas.drawString(540, 10, "Page {0}".format(PAGE_NO)) canvas.save() return out_path
def myFirstPage(canvas, doc): PAGE_HEIGHT,PAGE_WIDTH = letter canvas.saveState() canvas.drawImage(fondo, 0,0, PAGE_HEIGHT, PAGE_WIDTH ) canvas.setStrokeColorRGB(1,0,1,alpha=0.1) #canvas.setPageSize(landscape(letter)) canvas.setFont('Arial', 10) canvas.drawString(150, 579, cuenta_cobro.nombre_dependencia) canvas.drawString(215, 558, cuenta_cobro.fecha_transaccion) canvas.drawString(284, 538, cuenta_cobro.nombre_adquiriente) canvas.drawString(90, 513, cuenta_cobro.nit_adquiriente) canvas.drawString(230, 513, cuenta_cobro.direccion_adquiriente) canvas.drawString(492, 513, cuenta_cobro.telefono_adquiriente) canvas.drawString(120, 488, cuenta_cobro.ciudad_adquiriente) # canvas.drawString(285, 474, cuenta_cobro.nombre_beneficiario) canvas.drawString(140, 448, cuenta_cobro.documento_beneficiario) canvas.drawString(365, 448, cuenta_cobro.direccion_beneficiario) canvas.drawString(120, 425, cuenta_cobro.telefono_beneficiario) canvas.drawString(360, 425, cuenta_cobro.email_beneficiario) canvas.drawString(115, 410, cuenta_cobro.ciudad_beneficiario) cuenta_cobro.objeto_contrato = textwrap.fill(cuenta_cobro.objeto_contrato, 80) textobject = canvas.beginText() textobject.setTextOrigin(63, 365) textobject.textLines(cuenta_cobro.objeto_contrato) canvas.drawText(textobject) canvas.drawString(117, 297, cuenta_cobro.no_rpc) canvas.drawString(242, 297, cuenta_cobro.no_cdp) canvas.drawString(392, 297, cuenta_cobro.valor_contrato) canvas.drawString(127, 282, cuenta_cobro.concepto) canvas.drawString(127, 268, cuenta_cobro.valor_concepto) canvas.drawString(95, 255, cuenta_cobro.valor_concepto_letras) SHOW_GRID = False if SHOW_GRID: n = 5 s = 200 #canvas.setStrokeGray(0.90) #canvas.setFillGray(0.90) canvas.setStrokeColorRGB(0,1,1,alpha=0.1) canvas.setFillColorRGB(1,0,1) canvas.setFont('Arial',1) for x in range(s): for y in range(s): canvas.rect(x*n,y*n, width=n, height=n, stroke=1) canvas.drawString(x*n,y*n,"%s,%s" % ((x*n),(y*n)) ) canvas.restoreState()
def draw_later_header(self, canvas, doc): header_string = f"{self.title} - {self.filename}".replace( "<", "<").replace(">", ">") canvas.setStrokeColorRGB(0, 0, 0) canvas.setLineWidth(0.5) canvas.setFont(_baseFontName, 10) print( f"Later Header Height: {self.bottomMargin + self.inner_height + 5}" ) canvas.drawString(self.leftMargin + 5, self.inner_height + self.bottomMargin + 5, header_string)
def draw_main_doc_header(canvas, pdf): """ Draws the invoice header """ canvas.saveState() canvas.translate(0, 29.7 * cm) canvas.setFont('Helvetica', 10) canvas.setStrokeColorRGB(0.9, 0.5, 0.2) canvas.setFillColorRGB(0.2, 0.2, 0.2) canvas.setFont('Helvetica', 16) canvas.drawString(18 * cm, -1 * cm, 'Invoice') canvas.drawInlineImage(INV_LOGO, 1 * cm, -1 * cm, 25, 25) canvas.setLineWidth(4) canvas.line(0, -1.25 * cm, 21.7 * cm, -1.25 * cm) canvas.restoreState()
def framePage(canvas, doc): # canvas.drawImage("snkanim.gif", 36, 36) canvas.saveState() canvas.setStrokeColorRGB(1, 0, 0) canvas.setLineWidth(5) canvas.line(66, 72, 66, PAGE_HEIGHT - 72) canvas.setFont("Times-Italic", 12) canvas.drawRightString(523, PAGE_HEIGHT - 56, "Platypus User Guide and Test Script") canvas.setFont("Times-Roman", 12) canvas.drawString(4 * inch, 0.75 * inch, "Page %d" % canvas.getPageNumber()) canvas.restoreState()
def onMyFirstPage(self, canvas, doc): # If the left_footer attribute is not None, then add it to the page canvas.saveState() if self.left_footer is not None: # canvas.setFont('Helvetica', 8) # canvas.drawString(1 * cm, 1 * cm, self.left_footer) canvas.setFont("Times-Roman", 150) canvas.setStrokeColorRGB(0.74, 0.74, 0.74) canvas.setFillColorRGB(0.74, 0.74, 0.74) canvas.translate(A4[0] / 2, A4[1] / 2) canvas.rotate(45) canvas.drawCentredString(20, 0, self.left_footer) canvas.restoreState()
def printBandOutline(self, canvas, text): """ Draw a dotted rectangle around the entire band, and type a small faded caption at the origin of the band. """ canvas.saveState() canvas.setLineWidth(0.1) canvas.setStrokeColorRGB(0.8, 0.5, 0.7) canvas.setDash(1, 2) canvas.rect(self.x, self.y, self.width, self.height) canvas.setFont("Helvetica", 8) canvas.setFillColor((0.6, 0.8, 0.7)) canvas.drawString(self.x, self.y, text) canvas.restoreState()
def myFirstPage(canvas, doc): PAGE_HEIGHT,PAGE_WIDTH = letter canvas.saveState() canvas.drawImage(fondo, 0,0, PAGE_HEIGHT, PAGE_WIDTH ) canvas.setStrokeColorRGB(1,0,1,alpha=0.1) #canvas.setPageSize(landscape(letter)) canvas.setFont('Arial', 8) canvas.drawString(132,670, cuenta_cobro.periodo) canvas.drawString(475, 670, cuenta_cobro.num_cuota) canvas.drawString(132, 653, cuenta_cobro.fecha_transaccion) canvas.drawString(132, 633, cuenta_cobro.no_contrato) seguridad_social = "Adjunto planilla de pago de Seguridad social No %s " % (cuenta_cobro.num_planilla_ss,) seguridad_social = seguridad_social + " correspondiente a los aportes del mes de %s, en los terminos legales." % (cuenta_cobro.mes_planilla_ss) #canvas.drawString(132, 300,textwrap.fill(seguridad_social, 90) ) cuenta_cobro.informe_actividades_periodo = textwrap.fill(cuenta_cobro.informe_actividades_periodo, 105) textobject = canvas.beginText() textobject.setTextOrigin(132, 609) textobject.textLines(cuenta_cobro.informe_actividades_periodo) canvas.drawText(textobject) textobject = canvas.beginText() textobject.setTextOrigin(132, 240) textobject.textLines(textwrap.fill(seguridad_social, 105)) canvas.drawText(textobject) #canvas.drawString(132, 292, "correspondiente a los aportes del mes de %s, en los terminos legales." % (cuenta_cobro.mes_planilla_ss)) canvas.drawCentredString(170, 90, cuenta_cobro.nombre_interventor) canvas.drawCentredString(170, 81, "INTERVENTOR/SUPERVISOR %s" % (cuenta_cobro.cargo_interventor,)) canvas.drawCentredString(415, 90, cuenta_cobro.nombre_beneficiario) canvas.drawCentredString(415, 81, "C.C. No. %s de %s" % (cuenta_cobro.documento_beneficiario, cuenta_cobro.lugar_exp_doc_beneficiario)) SHOW_GRID = False if SHOW_GRID: n = 5 s = 200 #canvas.setStrokeGray(0.90) #canvas.setFillGray(0.90) canvas.setStrokeColorRGB(0,1,1,alpha=0.1) canvas.setFillColorRGB(1,0,1) canvas.setFont('Arial',1) for x in range(s): for y in range(s): canvas.rect(x*n,y*n, width=n, height=n, stroke=1) canvas.drawString(x*n,y*n,"%s,%s" % ((x*n),(y*n)) ) canvas.restoreState()
def framePage(canvas,doc): #canvas.drawImage("snkanim.gif", 36, 36) canvas.saveState() canvas.setStrokeColorRGB(1,0,0) canvas.setLineWidth(5) canvas.line(66,72,66,PAGE_HEIGHT-72) canvas.setFont('Times-Italic',12) canvas.drawRightString(523, PAGE_HEIGHT - 56, "Platypus User Guide and Test Script") canvas.setFont('Times-Roman',12) canvas.drawString(4 * inch, 0.75 * inch, "Page %d" % canvas.getPageNumber()) canvas.restoreState()
def framePage(canvas, title): canvas.setFont("Times-BoldItalic", 20) canvas.drawString(inch, 10.5 * inch, title) canvas.setFont("Times-Roman", 10) canvas.drawCentredString(4.135 * inch, 0.75 * inch, "Page %d" % canvas.getPageNumber()) # draw a border canvas.setStrokeColorRGB(1, 0, 0) canvas.setLineWidth(5) canvas.line(0.8 * inch, inch, 0.8 * inch, 10.75 * inch) # reset carefully afterwards canvas.setLineWidth(1) canvas.setStrokeColorRGB(0, 0, 0)
def draw_page(page, uid, survey_name, canvas: reportlab.pdfgen.canvas.Canvas): draw_qr_data(canvas, 'survey:' + survey_name + ':' + page.name + ':' + uid, 64, (48, height - 64 - 48)) canvas.setFillColorRGB(0.2, 0.2, 0.2) canvas.setStrokeColorRGB(0.2, 0.2, 0.2) canvas.circle(32, 32, 4, stroke=1, fill=1) canvas.circle(32 + 12, 32, 4, stroke=1, fill=1) canvas.circle(32, 32 + 12, 4, stroke=1, fill=1) canvas.circle(width - 32, height - 32, 4, stroke=1, fill=1) canvas.circle(width - 32 - 12, height - 32, 4, stroke=1, fill=1) canvas.circle(width - 32, height - 32 - 12, 4, stroke=1, fill=1) canvas.circle(width - 32, 32, 4, stroke=1, fill=1) canvas.circle(width - 32 - 12, 32, 4, stroke=1, fill=1) canvas.circle(width - 32, 32 + 12, 4, stroke=1, fill=1) canvas.circle(32, height - 32, 4, stroke=1, fill=1) canvas.circle(32 + 12, height - 32, 4, stroke=1, fill=1) canvas.circle(32, height - 32 - 12, 4, stroke=1, fill=1) canvas.setFillColorRGB(0.3, 0.3, 0.3) canvas.drawString(128, height - 67, survey_name + ':' + page.name + ':' + uid) canvas.setFillColorRGB(0.4, 0.4, 0.4) canvas.setStrokeColorRGB(0.2, 0.2, 0.2) canvas.setFont('Courier', 8) for field in page.get_binary_fields(): canvas.circle(field.position[0], height - field.position[1], 5, stroke=1, fill=0) canvas.drawCentredString(field.position[0], height - field.position[1] - 2, field.hint) canvas.setFillColorRGB(0.1, 0.1, 0.1) for text in page.get_text_areas(): if text.rotation != 0: canvas.saveState() canvas.rotate(text.rotation) tobj = canvas.beginText(text.position[0], height - text.position[1]) tobj.setFont(text.fontname, text.fontsize) for line in text.text.split(): tobj.textLine(line) canvas.drawText(tobj) if text.rotation != 0: canvas.restoreState() canvas.showPage()
def draw_footer(self, canvas, doc): canvas.setStrokeColorRGB(0, 0, 0) canvas.setLineWidth(0.5) canvas.setFont('Times-Roman', 10) username = getpass.getuser() device = socket.gethostname() creation_time = datetime.datetime.now().strftime("%H:%M:%S %d/%m/%Y") footer_string = f"Generated from {self.full_filename} by {username}@{device} on {creation_time}" # split_len = 100 split_len = self.inner_width / 4.6 print("Making Footer!") generated_by_height = canvas.footer_height + (cm * 0.5) if len(footer_string) > split_len: wrap_text = textwrap.wrap(footer_string, width=split_len)[::-1] for idx, line in enumerate(wrap_text): canvas.drawString(doc.leftMargin, generated_by_height + (idx * 0.5 * cm), line) canvas.line( x1=doc.leftMargin, y1=generated_by_height + (len(wrap_text) * 0.5 * cm), x2=doc.pagesize[0] - 50, y2=generated_by_height + (len(wrap_text) * 0.5 * cm), ) elif len(footer_string) < self.inner_width / 6: canvas.drawString(doc.leftMargin, canvas.footer_height, footer_string) canvas.line( x1=doc.leftMargin, y1=canvas.footer_height + (0.5 * cm), x2=doc.pagesize[0] - 50, y2=canvas.footer_height + (0.5 * cm), ) else: canvas.drawString(doc.leftMargin, generated_by_height, footer_string) canvas.line( x1=doc.leftMargin, y1=generated_by_height + (0.5 * cm), x2=doc.pagesize[0] - 50, y2=generated_by_height + (0.5 * cm), )
def gentestlabels(): # ascertain edges global gl_printer (xwidth, yheight) = letter margin = .3 * inch xwidth -= margin * 2 yheight -= margin * 2 xorg = yorg = margin canvas = canvas_init('tmp/kitlabels.pdf', pagesize=letter, bottomup=1, verbosity=1) canvas.setStrokeColorRGB(.33, .33, .33) canvas.setFont('Helvetica', 10) yrows = 3 xcols = 2 ystep = yheight / yrows xstep = xwidth / xcols v('xystep: %f %f' % (xstep, ystep)) x = xorg i = 0 pages = 2 for page in range(pages): if (page != 0): canvas.showPage() y = yheight - ystep + margin for yrowcount in reversed(range(yrows)): for xcolcount in reversed(range(xcols)): genkitlabel(canvas, x, y, xstep, ystep, '', test=1) i += 1 x += xstep x = xorg y -= ystep finish_up(canvas) exit()
def gentestlabels(): # ascertain edges global gl_printer (xwidth, yheight) = letter margin = .3*inch xwidth -= margin*2 yheight -= margin*2 xorg = yorg = margin canvas = canvas_init('tmp/kitlabels.pdf',pagesize=letter,bottomup=1,verbosity=1) canvas.setStrokeColorRGB(.33,.33,.33) canvas.setFont('Helvetica',10) yrows = 3 xcols = 2 ystep = yheight/yrows xstep = xwidth/xcols v('xystep: %f %f' % (xstep,ystep) ) x = xorg i = 0 pages = 2 for page in range(pages): if (page != 0): canvas.showPage() y = yheight-ystep+margin for yrowcount in reversed(range(yrows)): for xcolcount in reversed(range(xcols)): genkitlabel(canvas, x,y,xstep,ystep,'',test=1) i += 1 x += xstep x = xorg y -= ystep finish_up(canvas) exit()
def _footer(canvas, doc): splunkLayoutSettings = PAPERSIZES[doc.splunkPaperSize] canvas.saveState() canvas.setStrokeColorRGB(0.8, 0.8, 0.8) canvas.setLineWidth(1) # hairline canvas.line(inch, inch, doc.width + inch, inch) canvas.setStrokeColorRGB(0.5, 0.5, 0.5) canvas.setFillColorRGB(0.586, 0.586, 0.586) canvas.drawRightString(doc.width + inch, 0.75 * inch - _TEXT_OFFSET, "Page %d" % (doc.page)) # draw title centered and ellipsized ellipsizedTitle = _ellipsize(doc.getTitle(), splunkLayoutSettings['ellipsizedTitleCount']) ellipsizedTitleWidth = doc.getFontManager().textWidth( ellipsizedTitle, _TITLE_SIZE) textObject = canvas.beginText( inch + doc.width / 2 - ellipsizedTitleWidth / 2, 0.75 * inch - _TEXT_OFFSET) doc.getFontManager().addTextAndFontToTextObject(textObject, ellipsizedTitle, _TITLE_SIZE) canvas.drawText(textObject) timestamp = doc.getTimestamp() timestampWidth = doc.getFontManager().textWidth(timestamp, _DATE_SIZE) textObject = canvas.beginText(inch + doc.width - timestampWidth, inch - _TEXT_OFFSET) doc.getFontManager().addTextAndFontToTextObject(textObject, timestamp, _DATE_SIZE) canvas.drawText(textObject) canvas.restoreState() canvas.saveState() if doc.getLogoDrawing() != None: logoDrawing = doc.getLogoDrawing() renderPDF.draw(logoDrawing, canvas, inch, inch - logoDrawing.height - _LOGO_OFFSET, showBoundary=False) canvas.restoreState()
def prepare_first_page(canvas, document): p1 = Paragraph(presentation.title, styles['Heading']) p2 = Paragraph(presentation.owner.get_full_name(), styles['SubHeading']) avail_width = width - inch # TODO: determine if the complaint about height being undeclared is just pycharm or if its a problem # if it is possibly a problem "it's better to be explicit" so refactor avail_height = height - inch w1, h1 = p1.wrap(avail_width, avail_height) w2, h2 = p2.wrap(avail_width, avail_height) f = Frame(inch / 2, inch / 2, width - inch, height - inch, leftPadding=0, bottomPadding=0, rightPadding=0, topPadding=0) f.addFromList([p1, p2], canvas) document.pageTemplate.frames[0].height -= h1 + h2 + inch / 2 document.pageTemplate.frames[1].height -= h1 + h2 + inch / 2 canvas.saveState() canvas.setStrokeColorRGB(0, 0, 0) canvas.line(width / 2, inch / 2, width / 2, height - inch - h1 - h2) canvas.restoreState()
def draw_page(page, uid, survey_name, canvas : reportlab.pdfgen.canvas.Canvas): draw_qr_data(canvas, 'survey:'+survey_name+':'+page.name+':'+uid, 64, (48, height-64-48)) canvas.setFillColorRGB(0.2, 0.2, 0.2) canvas.setStrokeColorRGB(0.2, 0.2, 0.2) canvas.circle(32, 32, 4, stroke=1, fill=1) canvas.circle(32+12, 32, 4, stroke=1, fill=1) canvas.circle(32, 32+12, 4, stroke=1, fill=1) canvas.circle(width - 32, height - 32, 4, stroke=1, fill=1) canvas.circle(width - 32-12, height - 32, 4, stroke=1, fill=1) canvas.circle(width - 32, height - 32-12, 4, stroke=1, fill=1) canvas.circle(width - 32, 32, 4, stroke=1, fill=1) canvas.circle(width - 32-12, 32, 4, stroke=1, fill=1) canvas.circle(width - 32, 32+12, 4, stroke=1, fill=1) canvas.circle(32, height - 32, 4, stroke=1, fill=1) canvas.circle(32+12, height - 32, 4, stroke=1, fill=1) canvas.circle(32, height - 32-12, 4, stroke=1, fill=1) canvas.setFillColorRGB(0.3, 0.3, 0.3) canvas.drawString(128, height - 67, survey_name+':'+page.name+':'+uid) canvas.setFillColorRGB(0.4, 0.4, 0.4) canvas.setStrokeColorRGB(0.2, 0.2, 0.2) canvas.setFont('Courier', 8) for field in page.get_binary_fields(): canvas.circle(field.position[0], height - field.position[1], 5, stroke=1, fill=0) canvas.drawCentredString(field.position[0], height - field.position[1]-2, field.hint) canvas.setFillColorRGB(0.1, 0.1, 0.1) for text in page.get_text_areas(): if text.rotation != 0: canvas.saveState() canvas.rotate(text.rotation) tobj = canvas.beginText(text.position[0], height - text.position[1]) tobj.setFont(text.fontname, text.fontsize) for line in text.text.split(): tobj.textLine(line) canvas.drawText(tobj) if text.rotation != 0: canvas.restoreState() canvas.showPage()
def piePagina(canvas, doc): canvas.saveState() canvas.setFillGray(0.3) canvas.setFont('Helvetica-Bold', 6) width = doc.width texto1 = 'Campus "Ingeniero Manuel Agustín Haz Álvarez", Av. Quito km. 1 1/2 vía a Santo Domingo de los Tsáchilas' texto2 = 'Tel: (593) 5370-2220 - [email protected] - www.uteq.edu.ec' texto3 = 'QUEVEDO - LOS RÍOS - ECUADOR' tam1 = stringWidth(texto1, 'Helvetica-Bold', 6) tam2 = stringWidth(texto2, 'Helvetica-Bold', 6) tam3 = stringWidth(texto3, 'Helvetica-Bold', 6) canvas.drawString((width - tam1) + 110, 0.7 * inch, texto1) canvas.drawString((width - tam2) + 110, 0.6 * inch, texto2) canvas.drawString((width - tam3) + 110, 0.5 * inch, texto3) canvas.setFillColorRGB(250 / 256, 210 / 256, 1 / 256) canvas.setStrokeColorRGB(250 / 256, 210 / 256, 1 / 256) canvas.rect(width + 115, 0.5 * inch, 4, 30, fill=1) canvas.setFillColorRGB(76 / 256, 145 / 256, 65 / 256) canvas.setStrokeColorRGB(76 / 256, 145 / 256, 65 / 256) canvas.rect(width + 122, 0.5 * inch, 8, 30, fill=1) canvas.restoreState()
def encabezado(canvas, doc): canvas.saveState() canvas.setFont('Times-Roman', 9) canvas.drawImage(this_path + '/static/images/aok/logo.png', inch, A4[1] - 90, 55, 60, mask='auto') # imagen logo canvas.setStrokeColorRGB(121 / 256, 128 / 256, 129 / 256) # choose your line color canvas.line(133, A4[1] - 90, 133, A4[1] - 45) # linea canvas.setFont('Helvetica', 12) canvas.setFillGray(0.3) canvas.drawString(140, A4[1] - 64, 'Universidad') canvas.setFont('Helvetica-Bold', 14) canvas.drawString(140, A4[1] - 79, 'Técnica Estatal de Quevedo') canvas.setFont('Helvetica-Bold', 8) canvas.drawString(140, A4[1] - 90, 'La primera Universidad Agropecuaria del País') canvas.setFillColorRGB(250 / 256, 210 / 256, 1 / 256) canvas.setStrokeColorRGB(250 / 256, 210 / 256, 1 / 256) canvas.rect(50, 742, 500, 3, fill=1) canvas.setFillColorRGB(76 / 256, 145 / 256, 65 / 256) canvas.setStrokeColorRGB(76 / 256, 145 / 256, 65 / 256) canvas.rect(50, 742, 500, 1, fill=1) canvas.restoreState()
def addPage(canvas, page, strokes): canvas.setLineCap(1) if page['height'] > page['width']: PAGE = (A4[0], A4[1]) else: PAGE = (A4[1], A4[0]) canvas.setPageSize(PAGE) S = PAGE[0] / page['width'] for s in strokes: dots = s['dots'] x0, y0, p0, dt0 = dots[0] for x, y, p, dt in dots[1:]: # the factor 1.5 visually matches the thickness in neonote app canvas.setLineWidth((s['thickness'] + 1.5) * p) col = s['color'] canvas.setStrokeColorRGB(col[1] / 255, col[2] / 255, col[3] / 255) canvas.line(S * x0, S * y0, S * x, S * y) x0, y0, p0 = x, y, p canvas.showPage()
def myFirstPage(canvas, doc): PAGE_HEIGHT,PAGE_WIDTH = letter canvas.saveState() canvas.drawImage(fondo, 0,0, PAGE_HEIGHT, PAGE_WIDTH ) canvas.setStrokeColorRGB(1,0,1,alpha=0.1) #canvas.setPageSize(landscape(letter)) canvas.setFont('Arial', 10) canvas.drawString(150, 579, "-") SHOW_GRID = True if SHOW_GRID: n = 5 s = 200 #canvas.setStrokeGray(0.90) #canvas.setFillGray(0.90) canvas.setStrokeColorRGB(0,1,1,alpha=0.1) canvas.setFillColorRGB(1,0,1) canvas.setFont('Arial',1) for x in range(s): for y in range(s): canvas.rect(x*n,y*n, width=n, height=n, stroke=1) canvas.drawString(x*n,y*n,"%s,%s" % ((x*n),(y*n)) ) canvas.restoreState()
def drawGuides(self): canvas = self.canvas left = self.offsetx right = left + self.cardw*self.columns top = self.offsety + self.cardh bottom = top - self.cardh*self.rows canvas.setLineWidth(self.sepwidth) for ix in range(0, self.columns+1): x = self.offsetx + self.cardw*ix canvas.setStrokeColorRGB(*self.guides) canvas.line(x, self.pagesize[1], x, top) canvas.line(x, bottom, x, 0) canvas.setStrokeColorRGB(*self.separators) canvas.line(x, top, x, bottom) for iy in range(-1, self.rows): y = self.offsety - self.cardh*iy canvas.setStrokeColorRGB(*self.guides) canvas.line(0, y, left, y) canvas.line(right, y, self.pagesize[0], y) canvas.setStrokeColorRGB(*self.separators) canvas.line(left, y, right, y)
def drawGuides(self): GUIDECOLOR = (0.5, 0.5, 0.5) canvas = self.canvas left = self.offsetx right = left + self.cardw*self.columns top = self.offsety + self.cardh bottom = top - self.cardh*self.rows for ix in range(0, self.columns+1): x = self.offsetx + self.cardw*ix canvas.setStrokeColorRGB(*GUIDECOLOR) canvas.line(x, self.pagesize[1], x, top) canvas.line(x, bottom, x, 0) canvas.setStrokeColorRGB(1, 1, 1) canvas.line(x, top, x, bottom) for iy in range(-1, self.rows): y = self.offsety - self.cardh*iy canvas.setStrokeColorRGB(*GUIDECOLOR) canvas.line(0, y, left, y) canvas.line(right, y, self.pagesize[0], y) canvas.setStrokeColorRGB(1, 1, 1) canvas.line(left, y, right, y)
def render_over(self, x, y, canvas, template): column_width = template.size[0] * mm row_height = template.size[1] * mm color = hex_to_rgb(self.colors[3]) canvas.setStrokeColorRGB(color[0] / 255.0, color[1] / 255.0, color[2] / 255.0) canvas.line(x - (self.margin0 * mm), y, x - (self.margin1 * mm), y) canvas.line(x, y - (self.margin0 * mm), x, y - (self.margin1 * mm)) color = hex_to_rgb(self.colors[0]) canvas.setStrokeColorRGB(color[0] / 255.0, color[1] / 255.0, color[2] / 255.0) canvas.line(x - (self.margin0 * mm), y + row_height + (self.margin1 * mm), x - (self.margin1 * mm), y + row_height + (self.margin1 * mm)) canvas.line(x, y + row_height + (self.margin0 * mm), x, y + row_height + (self.margin1 * mm)) color = hex_to_rgb(self.colors[2]) canvas.setStrokeColorRGB(color[0] / 255.0, color[1] / 255.0, color[2] / 255.0) canvas.line(x + column_width + (self.margin1 * mm), y, x + column_width + (self.margin0 * mm), y) canvas.line(x + column_width, y - (self.margin0 * mm), x + column_width, y - (self.margin1 * mm)) color = hex_to_rgb(self.colors[1]) canvas.setStrokeColorRGB(color[0] / 255.0, color[1] / 255.0, color[2] / 255.0) canvas.line(x + column_width + (self.margin1 * mm), y + row_height + (self.margin1 * mm), x + column_width + (self.margin0 * mm), y + row_height + (self.margin1 * mm)) canvas.line(x + column_width, y + row_height + (self.margin0 * mm), x + column_width, y + row_height + (self.margin1 * mm))
# Parâmetros (x, y, radius) canvas.circle(100, 500, 50, stroke=1, fill=0) # Com contorno e sem preenchimento canvas.circle(300, 500, 80, stroke=0, fill=1) # Sem contorno e com preenchimento # # Colorindo elementos # # Parâmetros (R, G, B) canvas.setFillColorRGB(255, 0, 0) canvas.rect(60, 300, 50, 100, stroke=0, fill=1) # Somente uma escala para tons de cinza (0 - 1) canvas.setFillGray(0.9) canvas.rect(180, 300, 50, 100, stroke=0, fill=1) # Alterando a cor da borda canvas.setStrokeColorRGB(0, 0, 255) canvas.rect(300, 300, 50, 100, stroke=1, fill=1) # # Utilizando o HexCode # from reportlab.lib.colors import HexColor canvas.setFillColor(HexColor('#ff8100')) canvas.rect(420, 300, 50, 100, stroke=1, fill=1) canvas.save()
def genlabels(test=0, paper_size_no=0, printer='acrobat', verbose=0, label_content='stdin', fold=False, file_name=''): global xwidth global yheight global gl_printer gl_printer = printer global gl_filename gl_filename = os.path.normpath('tmp/kitlabels' + str(os.getpid()) + genranstr() + '.pdf') if (file_name != ''): gl_filename = file_name global gl_verbose gl_verbose = verbose if test == 2: pstderr('Running old gentestlabels()') gentestlabels() return pstderr('-h for help') yfix = 0 # needed when printer prefs set to 4x6 and printing labels smaller than same #-- if (paper_size_no == 0): # ascertain edges pstderr('genlabels() paper_size: letter') (xwidth, yheight) = letter canvas = canvas_init(gl_filename, pagesize=letter, bottomup=1, verbosity=1) margin = .3 * inch xorg = yorg = margin #-- elif (paper_size_no == 1): pstderr('genlabels() paper_size: 4 x 6 label') margin = .0 * inch (xwidth, yheight) = (4 * inch, 6 * inch) canvas = canvas_init(gl_filename, pagesize=(4 * inch, 6 * inch), bottomup=1, verbosity=1) xorg = yorg = margin #-- elif (paper_size_no == 2): pstderr('genlabels() paper_size: 2.25 x .125 label') margin = .0 * inch (xwidth, yheight) = (2.25 * inch, 1.25 * inch) canvas = canvas_init(gl_filename, pagesize=(4 * inch, 6 * inch), bottomup=1, verbosity=1) yfix = 4.75 * inch # fudge factor to get little label to top of 6" space (which is what the label printer driver is set to xorg = yorg = margin xorg += .80 * inch #-- elif (paper_size_no == 3): pstderr('genlabels() paper_size: 3.50 x 1.0 label') margin = .0 * inch (xwidth, yheight) = (3.50 * inch, 1.00 * inch) canvas = canvas_init(gl_filename, pagesize=(4 * inch, 6 * inch), bottomup=1, verbosity=1) yfix = 5 * inch xorg = yorg = margin xorg += .55 * inch #-- else: pstderr('unknown paper size: ' + paper_size) exit() v('genlabels(): xwidth: %f' % (xwidth / inch)) xwidth -= margin * 2 yheight -= margin * 2 canvas.setStrokeColorRGB(.33, .33, .33) canvas.setFont('Helvetica', 10) if (paper_size_no == 0): yrows = 3 xcols = 2 else: yrows = 1 xcols = 1 ystep = yheight / yrows xstep = xwidth / xcols v('xystep,ystep: %f %f' % (xstep, ystep)) x = xorg i = 0 page = 0 if (label_content != 'stdin'): tgetl.label_content = label_content tgetl.ctr = 0 while (True): if (page != 0): canvas.showPage() y = yheight - ystep + margin v('y: %f yh: %f marg: %f' % (y, yheight, margin)) for yrowcount in reversed(range(yrows)): for xcolcount in reversed(range(xcols)): if (test): labelcontentlist = get_labels_worth_of_input_from_data( paper_size_no) else: if (label_content == 'stdin'): pstderr('Reading input from stdin') labelcontentlist = get_labels_worth_of_input_from_stdin( ) else: labelcontentlist = get_labels_worth_of_input_from_data( -1) if (labelcontentlist[0] == '..'): genlabeldone(canvas) return v('labelcontentlist[0]: [%s]' % (labelcontentlist[0])) v('genkitlabel(x=%f,y=%f,xstep=%f,ystep=%f)' % (x, y, xstep, ystep)) flip = False last_line = genkitlabel(canvas, x, y + yfix, xstep, ystep, labelcontentlist, 0, paper_size_no) if (last_line == '..'): genlabeldone(canvas) return x += xstep x = xorg y -= ystep page += 1
def drawPdf(canvas, donor): donor_name = donor.replace('_', ' ') canvas.saveState() headboxh = 80 headboxx = 20 headboxy = 695 headboxw = 570 footboxh = 65 footboxx = 20 footboxy = 20 footboxw = 570 # aiddata logo logouri = "assets/images/aiddata_main_wht.png" mapuri = "donors/" + donor + "/map.png" influenceuri = "donors/" + donor + "/influence.png" adviceuri = "donors/" + donor + "/advice.png" advicelegenduri = "assets/images/bubble_legend.png" compuri = "donors/" + donor + "/comp.png" comp2uri = "donors/" + donor + "/comp2.png" # blue header canvas.setFillColorRGB(.086, .121, .203) canvas.rect(headboxx, headboxy, headboxw, headboxh, fill=1) canvas.saveState() canvas.setFillColor(colors.white) canvas.setFont('Open Sans', 20) canvas.drawString(headboxx + 160, headboxy + .425 * headboxh, "Development Partner Profile") # green header headboxh = 30 headboxx = 20 headboxy = 665 headboxw = 570 canvas.setFillColorRGB(.461, .711, .340) canvas.rect(headboxx, headboxy, headboxw, headboxh, fill=1) canvas.saveState() canvas.setFillColor(colors.white) canvas.setFont('Open Sans', 18) donor_year = donor_name + " 2015" textWidth = stringWidth(donor_year, "Open Sans", 18) canvas.drawString(headboxx + headboxw - (textWidth + 10), headboxy + .30 * headboxh, donor_name + " 2015") # add logo logo = ImageReader(logouri) canvas.drawImage(logo, 30, 700, 120, 68,preserveAspectRatio=True, mask='auto') # add map canvas.setFont('Open Sans', 12) canvas.setFillColor(colors.black) title_str = "Distribution of " + donor_name + "'s" textWidth = stringWidth(title_str, "Open Sans", 12) pl = (PAGEWIDTH / 2) - (textWidth / 2) canvas.drawString(pl, 650, title_str) title_str = "Official Development Assistance(ODA) 2004-2013" textWidth = stringWidth(title_str, "Open Sans", 12) pl = (PAGEWIDTH / 2) - (textWidth / 2) canvas.drawString(pl, 638, title_str) map = ImageReader(mapuri) canvas.drawImage(map, 75, 305, 450, 350, mask='auto') # add influence chart canvas.setFont('Open Sans', 12) canvas.setFillColor(colors.black) title_str = "Three Aspects of " + donor_name + "'s Performance in the Countries It Influences Most" textWidth = stringWidth(title_str, "Open Sans", 12) pl = (PAGEWIDTH / 2) - (textWidth / 2) canvas.drawString(pl, 310, title_str) influence = ImageReader(influenceuri) canvas.drawImage(influence, 80, 20, 450, 275, mask='auto') # move to next page canvas.showPage() # add advice chart canvas.setFont('Open Sans', 12) canvas.setFillColor(colors.black) title_str = "Usefulness of Advice, Volume of ODA and Agenda-Setting Influence, by Policy Area" textWidth = stringWidth(title_str, "Open Sans", 12) pl = (PAGEWIDTH / 2) - (textWidth / 2) canvas.drawString(pl, 750, title_str) advice = ImageReader(adviceuri) canvas.drawImage(advice, 75, 530, 350, 200, mask='auto') advicelegend = ImageReader(advicelegenduri) canvas.drawImage(advicelegend, 450, 545,150,200, mask='auto') # add advice comp chart canvas.setFillColor(colors.black) title_str = "<para align='center'><font color='black' fontName='Open Sans' size=12>Usefulness of " + donor_name + "'s Advice Compared to the Average</font></para>" canvas.setFont('Open Sans', 6) comp_title_para = Paragraph(title_str, getSampleStyleSheet()["Normal"]) comp_title_para.wrapOn(canvas, 320, 200) comp_title_para.drawOn(canvas, 30, 500) legend_y = 487 stroke_length = 30 green_stroke_pos = 50 red_stroke_pos = 200 offset = 10 canvas.setStrokeColorRGB(.461, .711, .340) canvas.line(green_stroke_pos, legend_y + 2, green_stroke_pos + stroke_length, legend_y + 2) canvas.setStrokeColorRGB(.890, .118, .118) canvas.line(red_stroke_pos, legend_y + 2, red_stroke_pos + stroke_length, legend_y + 2) key_str1 = "All Other Development Partners" canvas.drawString(green_stroke_pos + stroke_length + offset, legend_y, key_str1) canvas.drawString(red_stroke_pos + stroke_length + offset , legend_y, donor_name) comp = ImageReader(compuri) comp_x = 85 comp_width = 175 comp_y = 280 comp_height = -80 canvas.drawImage(comp, comp_x, comp_y, comp_x + comp_width, comp_y + comp_height, mask='auto') # add comp2 chart title_str = "<para align='center'><font color='black' fontName='Open Sans' size=12>Three Dimensions of " + \ donor_name + "'s Performance Compared to Other Development Partners</font></para>" margin = 10 comp2_title_para = Paragraph(title_str, getSampleStyleSheet()["Normal"]) comp2_title_para.wrapOn(canvas, PAGEWIDTH - 2*margin, 200) comp2_title_para.drawOn(canvas, margin, 250) comp2 = ImageReader(comp2uri) canvas.drawImage(comp2, 45, 110, 525, 125, mask='auto') # blue footer canvas.setStrokeColorRGB(.086, .121, .203) canvas.setFillColorRGB(.086, .121, .203) canvas.rect(footboxx, footboxy, footboxw, footboxh, fill=1) canvas.saveState() canvas.setFillColor(colors.white) # add logo logo = ImageReader(logouri) canvas.drawImage(logo, 475, 18, 120, 68, preserveAspectRatio=True, mask='auto') #add footer info datastr1 = "<font color='white' fontName='Open Sans' size=7><b>Perceptions Data Availibility</b><br/></font> \ <font color='white' fontName='Open Sans' size=6>Source: 2014 Reform Efforts Survey<br/> \ Number of Policy Domains:20<br/> \ Number of Respondents:<br/> \ 1. Embasssies: 84<br/> \ 2. GIZ: 36<br/> \ 3. KfW: 19<br/></font>" style = getSampleStyleSheet()['Normal'] style.leading = 7 pData1 = Paragraph(datastr1, style) pData1.wrapOn(canvas, 350, 400) pData1.drawOn(canvas, 25, 30) datastr2 = "<font color='white' fontName='Open Sans' size=7><b>Financial Data Availability</b><br/></font> \ <font color='white' fontName='Open Sans' size=6>Source: AidData Core Database, 2004-2013<br/> \ Number of Recipients:12<br/> \ Total Projects: 245<br/> \ Total Commitments (USD 2011): $21.3 million<br/></font>" pData2 = Paragraph(datastr2, style) pData2.wrapOn(canvas, 150, 400) pData2.drawOn(canvas, 180, 45) # problem type ranking canvas.setFillColor(colors.black) title_str = "<font color='black' fontName='Open Sans' size=12>"+ donor_name + "'s Influence in Designing\nReforms for Different Problem Types</font>" rank_title_para = Paragraph(title_str, getSampleStyleSheet()["Normal"]) rank_title_para.wrapOn(canvas, 190, 100) rank_title_para.drawOn(canvas, 380, 490) #set dnr to first element, and find the correct one dnr = data[0] for d in data: if str(d["NameofDonor"]) == donor: dnr = d break ptype = copy.deepcopy(problem_type) for prob in ptype: prob["score"] = dnr["Q22_" + prob["Code"]] ptype = filter(lambda x: x["score"] != "", ptype) # get rid of no data for prob in ptype: prob["score"] = float(prob["score"]) ptype = sorted(ptype, key=lambda p: p["score"]) if len(ptype) != 0: num = int(min(math.ceil(float(len(ptype)) / 2), 3)) top = [None] * num bottom = [None] * num for i in range(0, num): top[i] = ptype[-1 * (i + 1)] bottom[i] = ptype[i] top_str = """ <font color='green' size=12><b>More Influential</b></font><br/> """ bottom_str = """ <font color='red' size=12><b>Less Influential</b></font><br/> """ for i, pt in enumerate(top): top_str += "<font color='green' fontName='Open Sans' size=8>" + \ "%d. " % (i + 1) + pt["ProblemTypeLong"] + " ({0:.2f})".format(pt["score"]) + "<br/>" + \ "</font>" for i, pt in enumerate(bottom): bottom_str += "<font color='red' fontname='Open Sans' size=8>" + \ "%d. " % (i + 1) + pt["ProblemTypeLong"] + " ({0:.2f})".format(pt["score"]) + "<br/>" + \ "</font>" pTop = Paragraph(top_str, getSampleStyleSheet()["Normal"]) pTop.wrapOn(canvas, 160, 400) pTop.drawOn(canvas, 380, 380) pBottom = Paragraph(bottom_str, getSampleStyleSheet()["Normal"]) pBottom.wrapOn(canvas, 160, 400) pBottom.drawOn(canvas, 380, 280) return canvas
def genlabels(test=0,paper_size_no=0,printer='acrobat',verbose=0,label_content='stdin',fold=False,file_name=''): global xwidth global yheight global gl_printer gl_printer = printer global gl_filename gl_filename = os.path.normpath( 'tmp/kitlabels' + str(os.getpid()) + genranstr() + '.pdf' ) if (file_name != ''): gl_filename = file_name global gl_verbose gl_verbose = verbose if test == 2: pstderr('Running old gentestlabels()') gentestlabels() return pstderr('-h for help') yfix = 0 # needed when printer prefs set to 4x6 and printing labels smaller than same #-- if (paper_size_no == 0): # ascertain edges pstderr('genlabels() paper_size: letter') (xwidth, yheight) = letter canvas = canvas_init(gl_filename,pagesize=letter,bottomup=1,verbosity=1) margin = .3*inch xorg = yorg = margin #-- elif (paper_size_no == 1): pstderr('genlabels() paper_size: 4 x 6 label') margin = .0*inch (xwidth , yheight) = (4*inch,6*inch) canvas = canvas_init(gl_filename,pagesize=(4*inch,6*inch),bottomup=1,verbosity=1) xorg = yorg = margin #-- elif (paper_size_no == 2): pstderr('genlabels() paper_size: 2.25 x .125 label') margin = .0*inch (xwidth , yheight) = (2.25*inch,1.25*inch) canvas = canvas_init(gl_filename,pagesize=(4*inch,6*inch),bottomup=1,verbosity=1) yfix = 4.75*inch # fudge factor to get little label to top of 6" space (which is what the label printer driver is set to xorg = yorg = margin xorg += .80*inch #-- elif (paper_size_no == 3): pstderr('genlabels() paper_size: 3.50 x 1.0 label') margin = .0*inch (xwidth , yheight) = (3.50*inch,1.00*inch) canvas = canvas_init(gl_filename,pagesize=(4*inch,6*inch),bottomup=1,verbosity=1) yfix = 5*inch xorg = yorg = margin xorg += .55*inch #-- else: pstderr('unknown paper size: ' + paper_size) exit() v('genlabels(): xwidth: %f' % (xwidth/inch)) xwidth -= margin*2 yheight -= margin*2 canvas.setStrokeColorRGB(.33,.33,.33) canvas.setFont('Helvetica',10) if (paper_size_no == 0): yrows = 3 xcols = 2 else: yrows = 1 xcols = 1 ystep = yheight/yrows xstep = xwidth/xcols v('xystep,ystep: %f %f' % (xstep,ystep) ) x = xorg i = 0 page = 0 if (label_content != 'stdin'): tgetl.label_content = label_content tgetl.ctr = 0 while(True): if (page != 0): canvas.showPage() y = yheight-ystep+margin v('y: %f yh: %f marg: %f' % (y,yheight,margin)) for yrowcount in reversed(range(yrows)): for xcolcount in reversed(range(xcols)): if (test): labelcontentlist = get_labels_worth_of_input_from_data(paper_size_no) else: if (label_content == 'stdin'): pstderr('Reading input from stdin') labelcontentlist = get_labels_worth_of_input_from_stdin() else: labelcontentlist = get_labels_worth_of_input_from_data(-1) if (labelcontentlist[0] == '..'): genlabeldone(canvas) return v('labelcontentlist[0]: [%s]' % (labelcontentlist[0])) v('genkitlabel(x=%f,y=%f,xstep=%f,ystep=%f)' % (x, y,xstep,ystep)) flip = False last_line = genkitlabel(canvas , x , y+yfix, xstep, ystep, labelcontentlist, 0, paper_size_no) if (last_line == '..'): genlabeldone(canvas) return x += xstep x = xorg y -= ystep page += 1
def myFirstPage(canvas, doc): PAGE_HEIGHT,PAGE_WIDTH = letter canvas.saveState() canvas.drawImage(fondo, 0,0, PAGE_HEIGHT, PAGE_WIDTH ) canvas.setStrokeColorRGB(1,0,1,alpha=0.1) #canvas.setPageSize(landscape(letter)) canvas.setFont('Tahoma-Bold', 8) cuenta_cobro.tipo_contrato = textwrap.fill(cuenta_cobro.tipo_contrato, 22) textobject = canvas.beginText() textobject.setTextOrigin(205, 638) textobject.textLines(cuenta_cobro.tipo_contrato) canvas.drawText(textobject) #canvas.drawCentredString(260,638, cuenta_cobro.tipo_contrato) canvas.drawString(205,607, cuenta_cobro.no_contrato) canvas.drawString(202,661, cuenta_cobro.fecha_transaccion) canvas.drawCentredString(445, 274, cuenta_cobro.saldo_pendiente_fecha) canvas.drawCentredString(497,523, cuenta_cobro.no_bp) canvas.drawCentredString(262,522, cuenta_cobro.vigencia_presupuestal) canvas.drawCentredString(497, 491, cuenta_cobro.documento_beneficiario) canvas.drawCentredString(267, 300, cuenta_cobro.valor_contrato) canvas.drawCentredString(500, 300, cuenta_cobro.valor_concepto) canvas.drawCentredString(263, 360, cuenta_cobro.no_cdp) canvas.drawCentredString(497, 360, cuenta_cobro.no_rpc) canvas.drawCentredString(260, 400, cuenta_cobro.fecha_inicio) canvas.drawCentredString(495, 400, cuenta_cobro.fecha_fin) canvas.drawCentredString(432, 460, cuenta_cobro.fecha_fin) canvas.drawCentredString(432, 430, cuenta_cobro.nombre_interventor) canvas.drawCentredString(432, 328, cuenta_cobro.periodo_facturado) #canvas.drawCentredString(432, 327, cuenta_cobro.periodo) # "SEGUNDA CUOTA #canvas.drawCentredString(495, 621, cuenta_cobro.num_cuota) canvas.drawString(326, 84, cuenta_cobro.nombre_interventor) canvas.drawString(326, 73, "C.C. %s" % cuenta_cobro.documento_interventor) canvas.drawString(81, 84, cuenta_cobro.nombre_beneficiario) canvas.drawString(81, 73, "C.C. %s" % cuenta_cobro.documento_beneficiario) cuenta_cobro.nombre_beneficiario = textwrap.fill(cuenta_cobro.nombre_beneficiario, 20) textobject = canvas.beginText() textobject.setTextOrigin(210, 500) textobject.textLines(cuenta_cobro.nombre_beneficiario) canvas.drawText(textobject) s = ''' EL DIA {} SE REUNIERON EL INTERVENTOR Y/O SUPERVISOR DEL CONTRATO {} {} DE LA SECRETARIA DE DESARROLLO TERRITORIAL Y BIENESTAR SOCIAL, Y EL CONTRATISTA {}, IDENTIFICADO CON CEDULA DE CIUDADANIA NUMERO {} CON EL FIN DE FIRMAR EL ACTA FINAL QUE AUTORIZA EL PAGO CORRESPONDIENTE AL CONTRATO NUMERO {} Y DEJAR CONSTANCIA DEL CUMPLIMIENTO DEL OBJETO DEL CONTRATO HASTA LA FECHA. '''.format(cuenta_cobro.fecha_transaccion, cuenta_cobro.nombre_interventor, cuenta_cobro.cargo_interventor, cuenta_cobro.nombre_beneficiario, cuenta_cobro.documento_beneficiario, cuenta_cobro.no_contrato ) s = textwrap.fill(s, 110) textobject = canvas.beginText() textobject.setFont("Tahoma", 8) textobject.setTextOrigin(82, 249) textobject.textLines(s) canvas.drawText(textobject) cuenta_cobro.objeto_contrato = textwrap.fill(cuenta_cobro.objeto_contrato, 100) textobject = canvas.beginText() textobject.setTextOrigin(83, 588) textobject.textLines(cuenta_cobro.objeto_contrato) canvas.drawText(textobject) SHOW_GRID = False if SHOW_GRID: n = 5 s = 200 #canvas.setStrokeGray(0.90) #canvas.setFillGray(0.90) canvas.setStrokeColorRGB(0,1,1,alpha=0.1) canvas.setFillColorRGB(1,0,1) canvas.setFont('Arial',1) for x in range(s): for y in range(s): canvas.rect(x*n,y*n, width=n, height=n, stroke=1) canvas.drawString(x*n,y*n,"%s,%s" % ((x*n),(y*n)) ) canvas.restoreState()
def genkitlabel(canvas, xa, ya, xw, yh, contentlist, test=0, paper_size_no=0): """ """ v('[------genkitlabel()') x = xa y = ya m = .05 * inch h = yh # calc height h -= m * 2 # height - margin w = xw # calc width w -= m * 2 # width - margin v('genkitlabel() ------') v('genkitlabel() xa,ya,xw,yh: %f %f %f %f' % (xa, ya, xw, yh)) v('genkitlabel() m h w : %f %f %f' % (m, h, w)) xo = yo = m # origin canvas.setLineWidth(.01 * inch) canvas.setStrokeColorRGB(.75, .75, .75) global xwidth if (not (xwidth / inch <= 3.50)): cutmark(canvas, x, y, 1, 1) cutmark(canvas, x + xw, y + yh, -1, -1) cutmark(canvas, x, y + yh, 1, -1) cutmark(canvas, x + xw, y, -1, 1) didlogo = False yloc = y + h image_size = 1.2 * inch logo_yloc = yloc - image_size + .2 * inch yrel = 0 for line in contentlist: if (line == '..' or line == '.'): flip = False break v('genkitlabel(): line:%s' % (line)) token = line.split() if len(token) <= 0: continue dowhat = token[0].upper() #--- global flip if (dowhat == 'FLIP'): flip = True elif (dowhat == 'LOGO'): v('LOGO') if (len(token) == 1): # no arg print logo if (paper_size_no == 3): image_size = 1 * inch canvas.drawImage('logo512x512.png', x + m - .75 * inch, logo_yloc, image_size, image_size, preserveAspectRatio=True) else: canvas.drawImage('logo512x512.png', x + m + .1 * inch + 2.4 * inch, logo_yloc, image_size, image_size, preserveAspectRatio=True) else: # print arg arg = token[1] if (len(arg) == 1): # character. make it big if flip: # They said 'LOGO X', so we draw big fat X where the logo should be canvas.saveState() canvas.translate(x + m + .3 * inch, logo_yloc + 1 * inch) canvas.scale(-1, -1) canvas.setFont('Helvetica-Bold', 70) canvas.drawString(0, 0, token[1]) canvas.restoreState() else: # They said 'LOGO X', so we draw big fat X where the logo should be canvas.setFont('Helvetica-Bold', 70) canvas.drawString(x + m - .45 * inch, logo_yloc + .2 * inch, token[1]) else: # Multiple characters if flip: # They said 'LOGO X', so we draw big fat X where the logo should be canvas.saveState() canvas.translate(x + m + .3 * inch, logo_yloc + 1 * inch) canvas.scale(-1, -1) canvas.setFont('Helvetica-Bold', 20) canvas.drawString(.5 * inch, .55 * inch, arg[0]) canvas.drawString(.5 * inch, .30 * inch, arg[1]) canvas.drawString(.5 * inch, .05 * inch, arg[2]) canvas.restoreState() else: # They said 'LOGO X', so we draw big fat X where the logo should be canvas.setFont('Helvetica-Bold', 20) canvas.drawString(x + m - .45 * inch, logo_yloc + .80 * inch, arg[0]) canvas.drawString(x + m - .45 * inch, logo_yloc + .55 * inch, arg[1]) canvas.drawString(x + m - .45 * inch, logo_yloc + .30 * inch, arg[2]) #--- elif (dowhat == 'BARCODE'): yloc = render_barcode(canvas, x, yloc, token[1], ' '.join(token[2:])) v('genkitlabel(): yloc now: %f' % (yloc)) #--- elif (dowhat == 'KEYVAL'): v('KEYVAL Width : ') yloc = render_key_and_value(canvas, x + m + .350 * inch, yloc, token[1], ' '.join(token[2:])) #yinc = .150*inch ## ## v('genkitlabel() --- line:' + line) return line
def myFirstPage(self,canvas, doc): canvas.saveState() canvas.drawImage(STATICFILES_DIRS[0]+'escudo_transito.jpg',35, PAGE_HEIGHT-115) canvas.setLineWidth(1) canvas.line(10, 723, 600,723) canvas.setFont('Times-Roman',8) canvas.drawString(10,PAGE_HEIGHT-130, "MUNICIPIO DE LEON GUANAJUATO") canvas.drawString(10,PAGE_HEIGHT-142, "SECRETARIA DE SEGURIDAD PUBLICA") canvas.drawString(420,PAGE_HEIGHT-142, "ACTA DE INFRACCION No T.") canvas.setFillColorRGB(1,0,0) canvas.setFontSize(18) folio=self.data.get('folio_infraccion',"") canvas.drawString(530,PAGE_HEIGHT-142, folio) canvas.setFontSize(10) canvas.setFillColorRGB(0,0,0) canvas.drawString(10,PAGE_HEIGHT-154, "DIRECCION GENERAL DE TRANSITO MUNICIPAL") canvas.setFont('Times-Roman',7.5) fundamento='Con fundamento en los artículos 16 de la Constitución Política de los Estados Unidos ' fundamento=fundamento + ' Mexicanos 4 de la Ley Orgánica Municipal para el Estado de Guanajuato1,2,3,4,fracción 1X 42,44 y 47 del' canvas.drawString(10,PAGE_HEIGHT-178, fundamento) canvas.drawString(10,PAGE_HEIGHT-190, "reglamento de Tránsito Municipal de Léon, Guanajuato se procede a levantar la presente.") canvas.drawString(330,PAGE_HEIGHT-190, "ACTA DE INFRACCION") #canvas.setFillColorRGB(0,0,0) #canvas.setFillColorCMYK(1,1,0,0) canvas.rect(10, 600, 583, 35) canvas.drawString(12,PAGE_HEIGHT -213, "EN LEON. Guanajuato, el suscrito") canvas.setFont('Times-Bold',7) canvas.drawString(170,PAGE_HEIGHT -213, "AGENTE") canvas.setFont('Times-Roman',7.5) canvas.drawString(250,PAGE_HEIGHT -213, "de nombre") canvas.setStrokeColorRGB(0,0,0) canvas.setLineWidth(1) canvas.line(300, 627, 430,627) canvas.setFont('Times-Bold',7) nombre=self.data.get('nombreAgente',"") canvas.drawString(300,PAGE_HEIGHT -213, nombre) canvas.setFont('Times-Roman',7.5) canvas.drawString(525,PAGE_HEIGHT -213, "adscrito a la") canvas.setFont('Times-Bold',7.5) canvas.drawString(12,PAGE_HEIGHT -222, "PRIMERA COMANDANCIA") canvas.drawString(130,PAGE_HEIGHT -222, "TURNO A") canvas.drawString(180,PAGE_HEIGHT -222, "DELEGACION PONIENTE") canvas.setFont('Times-Roman',7.5) canvas.drawString(280,PAGE_HEIGHT -222, " de la Direccion de Transito municipal de Leon Guanajuato como consta en la ") canvas.setFont('Times-Bold',7.5) canvas.drawString(525,PAGE_HEIGHT -222, "CREDENCIAL") cobro=self.data.get('noCobro',"") canvas.drawString(12,PAGE_HEIGHT -231, str(cobro)) canvas.setLineWidth(1) canvas.line(12, 609, 40,609) canvas.setFont('Times-Roman',7.5) canvas.drawString(45,PAGE_HEIGHT -231, "expedida por el titular de la Dependencia Municipal. con la cual me identifica. Siendo las") canvas.setFont('Times-Bold',7.5) hora=self.data.get('hora_infrac',"") canvas.drawString(318,PAGE_HEIGHT -231, hora) canvas.setLineWidth(1) canvas.line(318, 609, 337,609) canvas.setFont('Times-Roman',7.5) canvas.drawString(350,PAGE_HEIGHT -231, "Horas del dia") canvas.setFont('Times-Bold',7.5) canvas.drawString(398,PAGE_HEIGHT -231, "24") canvas.setLineWidth(1) canvas.line(395, 609, 407,609) canvas.setFont('Times-Roman',7) canvas.drawString(413,PAGE_HEIGHT -231, "del mes de") canvas.setFont('Times-Bold',7) canvas.drawString(453,PAGE_HEIGHT -231, "OCTUBRE") canvas.setLineWidth(1) canvas.line(450, 609, 493,609) canvas.setFont('Times-Roman',7.5) canvas.drawString(495,PAGE_HEIGHT -231, "Del año") canvas.setFont('Times-Bold',7.5) canvas.drawString(525,PAGE_HEIGHT -231, "2013") canvas.setFont('Times-Roman',7.5) canvas.drawString(12,PAGE_HEIGHT -240, "Hago constar que el conductor de vehiculo cuyos datos se especifican a continuacion:") canvas.rect(10, 575, 585, 10) canvas.rect(10, 495, 585, 80) canvas.setLineWidth(1) canvas.line(10, 565, 595,565) canvas.line(10, 555, 595,555) canvas.line(10, 545, 595,545) canvas.line(10, 535, 595,535) canvas.line(10, 525, 595,525) canvas.line(10, 515, 595,515) canvas.line(10, 505, 595,505) canvas.line(295, 495, 295,585) canvas.drawString(135,PAGE_HEIGHT -265, "Datos Personales") canvas.drawString(395,PAGE_HEIGHT -265, "Caracteristicas de Vehiculo") canvas.drawString(300,PAGE_HEIGHT -275, "Marca:") canvas.setFont('Times-Bold',7) self.LabelVehiculo(canvas) self.LabelConductor(canvas) vehiculo=self.data.get('vehiculo',"") if vehiculo !="": mar=vehiculo.get('marca',"") canvas.drawString(330,PAGE_HEIGHT -275, mar) vehiculo=self.data.get('vehiculo',"") sub=vehiculo.get('submarca',"") canvas.drawString(500,PAGE_HEIGHT -275, sub) #canvas.drawString(500,PAGE_HEIGHT -275, "PICK UP") canvas.setFont('Times-Roman',7) #canvas.drawString(500,PAGE_HEIGHT -275, "Camioneta") canvas.setFont('Times-Bold',7) modelo=vehiculo.get('modelo',"") canvas.drawString(340,PAGE_HEIGHT -285, modelo) canvas.setFont('Times-Roman',7) canvas.setFont('Times-Bold',7) color=vehiculo.get('color',"") canvas.drawString(470,PAGE_HEIGHT -285, color) canvas.setFont('Times-Roman',7) canvas.setFont('Times-Bold',7) placas=vehiculo.get('placas',"") canvas.drawString(340,PAGE_HEIGHT -295, placas) canvas.setFont('Times-Roman',7) canvas.setFont('Times-Bold',7) serie=vehiculo.get('serie',"") canvas.drawString(470,PAGE_HEIGHT -295, serie) canvas.setFont('Times-Roman',7) canvas.setFont('Times-Bold',7) empresa=vehiculo.get('empresa',"") canvas.drawString(360,PAGE_HEIGHT -305, empresa) canvas.setFont('Times-Roman',7) canvas.setFont('Times-Bold',7) tipo_vehiculo=vehiculo.get('tipo_vehiculo',"") canvas.drawString(500,PAGE_HEIGHT -305, tipo_vehiculo) canvas.setFont('Times-Roman',7) canvas.setFont('Times-Bold',7) estado=vehiculo.get('estado',"") canvas.drawString(53,PAGE_HEIGHT -325, estado) canvas.setFont('Times-Bold',7) empresa=vehiculo.get('empresa',"") canvas.drawString(360,PAGE_HEIGHT -325, empresa) canvas.setFont('Times-Roman',7) canvas.setFont('Times-Bold',7) ruta=vehiculo.get('ruta','') canvas.drawString(500,PAGE_HEIGHT -325, ruta) canvas.setFont('Times-Roman',7) canvas.setFont('Times-Bold',7) sub=vehiculo.get('no_economico',"") canvas.drawString(370,PAGE_HEIGHT -335, sub) canvas.setFont('Times-Roman',7) canvas.setFont('Times-Bold',7) no_tarjeton=vehiculo.get('no_tarjeton',"") canvas.drawString(400,PAGE_HEIGHT -345, no_tarjeton) infractor=self.data.get('infractor',"") if infractor !="": canvas.setFont('Times-Bold',7) nombre=infractor.get('nombre',"") canvas.drawString(57,PAGE_HEIGHT -285, nombre) canvas.setFont('Times-Roman',7) canvas.setFont('Times-Bold',7) edad=infractor.get('edad',"") canvas.drawString(57,PAGE_HEIGHT -295, edad) canvas.setFont('Times-Roman',7) canvas.setFont('Times-Bold',7) sexo=infractor.get('sexo',"") canvas.drawString(170,PAGE_HEIGHT -295, sexo) canvas.setFont('Times-Bold',7) domicilio=infractor.get('domicilio',"") canvas.drawString(53,PAGE_HEIGHT -305, domicilio) canvas.setFont('Times-Roman',7) canvas.setFont('Times-Bold',7) sub=infractor.get('colonia',"") canvas.drawString(53,PAGE_HEIGHT -315, sub) canvas.setFont('Times-Roman',7) canvas.setFont('Times-Bold',7) ciudad=infractor.get('ciudad',"") canvas.drawString(170,PAGE_HEIGHT -325, ciudad) canvas.setFont('Times-Roman',7) canvas.setFont('Times-Bold',7) no_licencia=infractor.get('no_licencia',"") canvas.drawString(120,PAGE_HEIGHT -335, no_licencia) """ ## ESTO DEBE DE ESTAR EN ALGUN LADO tipo_servicio=self.data.get('tipo_servicio',"") canvas.drawString(395,PAGE_HEIGHT -315, tipo_servicio) canvas.setFont('Times-Roman',7) canvas.setFont('Times-Roman',7) canvas.drawString(12,PAGE_HEIGHT -345, "Tipo de Operativo:") canvas.setFont('Times-Bold',7) sub=self.data.get('tipo_operativo',"") canvas.drawString(100,PAGE_HEIGHT -345, sub) canvas.setFont('Times-Roman',7) canvas.drawString(12,PAGE_HEIGHT -355, "Quien en estos Momentos") canvas.setFont('Times-Bold',7) sub=self.data.get('firmo',"") canvas.drawString(100,PAGE_HEIGHT -355, sub) canvas.setFont('Times-Roman',7) canvas.drawString(116,PAGE_HEIGHT -355, "se encuentra presente, cometio flagrantemente infraccion a los articulo(s) que se detalla(n) a continuacion") canvas.setLineWidth(2) ##canvas.rect(10, 440, 585, 35) canvas.setLineWidth(1) canvas.line(180, 440, 180,476) canvas.drawString(12,PAGE_HEIGHT -374, "Reglamento de Transito para") canvas.drawString(12,PAGE_HEIGHT -380, "el municipio de Leon, Guanajuato") canvas.drawString(190,PAGE_HEIGHT -378, "Descripcion de los Motivos de la infraccion") canvas.setFont('Times-Roman',7) canvas.setFont('Times-Bold',7) dy=585 canvas.rect(10, dy, 585, 45) canvas.drawString(12,PAGE_HEIGHT -dy, " Hechos que ocurrieron en:") canvas.setFont('Times-Bold',7) calle=self.data.get('calle1',"") canvas.drawString(200,PAGE_HEIGHT -dy, calle) canvas.line(190, dy-1, 315,dy-1) canvas.setFont('Times-Roman',7) canvas.drawString(395,PAGE_HEIGHT -dy, "Con circulacion de:") canvas.setFont('Times-Bold',7) bar=self.data.get('circulacion',"") canvas.drawString(475,PAGE_HEIGHT -dy, bar) canvas.setFont('Times-Roman',7) canvas.drawString(200,PAGE_HEIGHT -(dy+9), " Calle BOULEVARD / AVENIDA") canvas.setFont('Times-Bold',7) bar=self.data.get('colonia',"") dy=dy+19 canvas.drawString(73,PAGE_HEIGHT -dy, bar) canvas.line(29, dy-40, 150,dy-40) canvas.setFont('Times-Roman',7) canvas.drawString(190,PAGE_HEIGHT -dy, "Referencia") canvas.setFont('Times-Bold',7) bar=self.data.get('referencia',"") canvas.drawString(320,PAGE_HEIGHT -dy, bar) canvas.line(250, dy-40, 400,dy-40) canvas.setFont('Times-Roman',7) canvas.drawString(23,PAGE_HEIGHT-450, "FRACCIONAMIENTO COLONIA COMUNIDAD") canvas.drawString(250,PAGE_HEIGHT-450, "SENALAR FRENTE A QUE NUMERO ENTRE QUE CALLE U OTRO PUNTO DE REFERENCIA") canvas.drawString(12,PAGE_HEIGHT-455, "Ubicacion de senalamiento vial (en los casos que proceda)") canvas.drawString(12,PAGE_HEIGHT-480, "Con fundamento en lo dispuesto por el articulo 44 del reglamento de Transito Municipalde Leon Guanajuato para garantizar el cumplimiento de la sancion administrativa que") canvas.drawString(12,PAGE_HEIGHT -490, "en su caso se proceda, SE RETIENE AL INFRACTOR:") se_recoje=self.data.get('se_recoje',"") if se_recoje.get('tipo',"") == 'PLACAS': canvas.drawString(45,PAGE_HEIGHT -498, "X") canvas.drawString(12,PAGE_HEIGHT -498, "PLACAS ( )") if se_recoje.get('tipo',"") == 'TARJETA DE CIRCULACION': canvas.drawString(190,PAGE_HEIGHT -498, "X") canvas.drawString(95,PAGE_HEIGHT -498, "TARJETA DE CIRCULACION ( )") if se_recoje.get('tipo',"") == 'LICENCIA': canvas.drawString(253,PAGE_HEIGHT -498, "X") canvas.drawString (215,PAGE_HEIGHT -498,"LICENCIA ( )") if se_recoje.get('tipo',"") == 'VEHICULO': canvas.drawString(360,PAGE_HEIGHT -498, "X") canvas.drawString(320,PAGE_HEIGHT -498, "VEHICULO ( )") if se_recoje.get('tipo',"") == 'CORTESIA': canvas.drawString(460,PAGE_HEIGHT -498, "X") canvas.drawString(420,PAGE_HEIGHT -498, "CORTESIA ( )") if se_recoje.get('tipo',"") == 'PAGO MOVIL': canvas.drawString(570,PAGE_HEIGHT -498, "X") canvas.drawString(520,PAGE_HEIGHT -498, "PAGO MOVIL ( )") canvas.rect(10, 266, 585, 45) canvas.drawString(12,PAGE_HEIGHT -538, "En caso de violacion al articulo 36 del Reglamento de Transito Municipal deLeon, Guanajuato se remitio al conductor ante el Medico legista qien a traves del CERTIFICADO MEDICO") canvas.drawString(12,PAGE_HEIGHT -546, "NUMERO determino que ") print self.data ## LA CERTIFICACION NO ESTA EN ESTE MOMENTO certificado=self.data.get('certificado',"") if certificado['ebriedad_incompleta'] == 'si': canvas.drawString(105,PAGE_HEIGHT -554, "X" ) canvas.drawString(15,PAGE_HEIGHT -554, "EBRIEDAD INCOMPLETA ( )" ) if certificado['ebriedad_completa'] == 'si': canvas.drawString(200,PAGE_HEIGHT -554, "X" ) canvas.drawString(120,PAGE_HEIGHT -554, "EBRIEDAD COMPLETA ( )" ) if certificado['influjo_droga'] == 'si': canvas.drawString(315,PAGE_HEIGHT -554, "X") canvas.drawString(220,PAGE_HEIGHT -554, "BAJO INFLUJO DE DROGAS ( )") if certificado['aliento_alcoholico'] == 'si': canvas.drawString(423,PAGE_HEIGHT -554, "X") canvas.drawString(340,PAGE_HEIGHT -554, "ALIENTO ALCOHOLICO ( )") ## certificado=self.data.get('certificado',"") if certificado['normal'] == 'si': canvas.drawString(512,PAGE_HEIGHT -554, "X") canvas.drawString(450,PAGE_HEIGHT -554, "ESTADO NORMAL( )") canvas.drawString(12,PAGE_HEIGHT -562, "Se recoje el vehiculo infraccionado y se deposita en la pension autorizada que corresponda de conformidad a los(articulos) del reglamento de Transito Municipal de Leon Guanajuato.") canvas.drawString(12,PAGE_HEIGHT -570, "15 Ultimo parrafo( )") canvas.drawString(120,PAGE_HEIGHT -570, "18 Tercer y Cuarto Parrafo( )") canvas.drawString(300,PAGE_HEIGHT -570, "36 Ultimo Parrafo") canvas.drawString(395,PAGE_HEIGHT -570, "44 ( )") canvas.drawString(470,PAGE_HEIGHT -570, "45 ( )") tam= PAGE_WIDTH/3 """ canvas.restoreState()
def first_page(canvas, doc): """ draws the header part of the document for every page""" canvas.saveState() canvas.setFont('pala', 9) # 1point = 1/72 inch , 40 points = 0.55 inch canvas.drawString(40, 720, 'PLATINUM FILINGS LLC') canvas.drawString(40, 708, '99 WEST HAWTHORNE AVENUE') canvas.drawString(40, 696, 'SUITE 408') canvas.drawString(40, 684, 'VALLLEY STREAM, NY 11580') canvas.setFont('Helvetica-Bold', 16) canvas.drawString(468, 741.6, 'Invoice') canvas.setFont('Helvetica', 10) #Dynamic line canvas.drawString(468, 725, 'Page 1 of 4') """Invoice date and number box""" canvas.setLineWidth(.3) canvas.rect(378, 648, 223, 36) #horizontal canvas.line(378, 671, 601, 671) #vertical canvas.line(464, 648, 464, 684) canvas.setFont('Helvetica', 9) canvas.drawString(385, 674, 'Invoice Date') canvas.drawString(470, 674, 'Invoice Number') #Dynamic Content canvas.setFont('pala', 9) canvas.drawString(385, 660, 'April 14, 2021') canvas.drawString(470, 660, '2020-5742') canvas.restoreState() #Box1 canvas.setStrokeColorRGB(0, 0, 0) canvas.rect(20, 504, 270, 117) canvas.line(20, 599, 290, 599) canvas.setFont('palab', 9) canvas.drawString(40, 605, 'Bill To:') canvas.setFont('pala', 9) #Dynamic canvas.drawString(40, 585, 'Test Orders Invoices') canvas.drawString(40, 573, '123 Center Str') canvas.drawString(40, 561, 'Boko Town, Boko 999999') #Box2 canvas.rect(310, 504, 270, 117) canvas.line(310, 599, 580, 599) canvas.setFont('palab', 9) canvas.drawString(320, 605, 'Order Information:') canvas.drawString(320, 585, 'Order Date: ') canvas.drawString(320, 573, 'Order Name: ') canvas.drawString(320, 561, 'Client Matter Number: ') canvas.drawString(320, 549, 'Total Amount Due: ') canvas.drawString(320, 537, 'Processed By: ') canvas.drawString(320, 525, 'Authorized By: ') canvas.setFont('pala', 9) canvas.drawString(390, 585, 'April 14, 2021') canvas.drawString(390, 573, 'Test orders Aaron') #canvas.drawString(390, 561,'Client Matter Number: ') canvas.drawString(405, 549, '$144945') canvas.drawString(390, 537, 'Aaron Sauber') canvas.drawString(390, 525, 'Judith Testing') #seperator line canvas.setStrokeColorRGB(0.8, 0.8, 0.8) canvas.line(72, 635, 540, 635) canvas.setFillColorRGB(0, 0.4, 0.7) canvas.rect(20, 465, 572, 18, fill=1) canvas.setFillColorRGB(1, 1, 1) canvas.setFont('Helvetica', 10) canvas.drawString(30, 470, 'SUMMARY') canvas.restoreState()
def genkitlabel(canvas,xa,ya,xw,yh,contentlist,test=0,paper_size_no=0): """ """ v('[------genkitlabel()') x = xa y = ya m = .05*inch h = yh # calc height h -= m*2 # height - margin w = xw # calc width w -= m*2 # width - margin v('genkitlabel() ------') v('genkitlabel() xa,ya,xw,yh: %f %f %f %f' % (xa,ya,xw,yh)) v('genkitlabel() m h w : %f %f %f' % ( m, h, w)) xo = yo = m # origin canvas.setLineWidth(.01*inch) canvas.setStrokeColorRGB(.75,.75,.75) global xwidth if (not (xwidth/inch <= 3.50)): cutmark(canvas,x,y,1,1) cutmark(canvas,x+xw,y+yh,-1,-1) cutmark(canvas,x,y+yh,1,-1) cutmark(canvas,x+xw,y,-1,1) didlogo = False yloc = y + h image_size = 1.2*inch logo_yloc = yloc-image_size+.2*inch yrel = 0 for line in contentlist: if (line == '..' or line == '.'): flip = False break v('genkitlabel(): line:%s' %(line)) token = line.split() if len(token) <= 0: continue dowhat = token[0].upper() #--- global flip if (dowhat == 'FLIP'): flip = True elif (dowhat == 'LOGO'): v('LOGO') if (len(token) == 1): # no arg print logo if (paper_size_no == 3): image_size = 1*inch canvas.drawImage('logo512x512.png', x+m-.75*inch,logo_yloc, image_size, image_size, preserveAspectRatio=True) else: canvas.drawImage('logo512x512.png', x+m+.1*inch+2.4*inch,logo_yloc, image_size, image_size, preserveAspectRatio=True) else: # print arg arg = token[1] if (len(arg) == 1): # character. make it big if flip: # They said 'LOGO X', so we draw big fat X where the logo should be canvas.saveState() canvas.translate(x+m+.3*inch,logo_yloc+1*inch) canvas.scale(-1,-1) canvas.setFont('Helvetica-Bold',70) canvas.drawString(0,0,token[1]) canvas.restoreState() else: # They said 'LOGO X', so we draw big fat X where the logo should be canvas.setFont('Helvetica-Bold',70) canvas.drawString(x+m-.45*inch,logo_yloc+.2*inch,token[1]) else: # Multiple characters if flip: # They said 'LOGO X', so we draw big fat X where the logo should be canvas.saveState() canvas.translate(x+m+.3*inch,logo_yloc+1*inch) canvas.scale(-1,-1) canvas.setFont('Helvetica-Bold',20) canvas.drawString(.5*inch,.55*inch,arg[0]) canvas.drawString(.5*inch,.30*inch,arg[1]) canvas.drawString(.5*inch,.05*inch,arg[2]) canvas.restoreState() else: # They said 'LOGO X', so we draw big fat X where the logo should be canvas.setFont('Helvetica-Bold',20) canvas.drawString(x+m-.45*inch,logo_yloc+.80*inch,arg[0]) canvas.drawString(x+m-.45*inch,logo_yloc+.55*inch,arg[1]) canvas.drawString(x+m-.45*inch,logo_yloc+.30*inch,arg[2]) #--- elif (dowhat == 'BARCODE'): yloc = render_barcode(canvas, x,yloc, token[1], ' '.join(token[2:])) v('genkitlabel(): yloc now: %f' % (yloc)) #--- elif (dowhat == 'KEYVAL'): v('KEYVAL Width : ') yloc = render_key_and_value(canvas, x+m+.350*inch, yloc, token[1], ' '.join(token[2:])) #yinc = .150*inch ## ## v('genkitlabel() --- line:' + line) return line
def prepare_later_page(canvas, document): canvas.saveState() canvas.setStrokeColorRGB(0, 0, 0) canvas.line(width / 2, inch / 2, width / 2, height - inch / 2) canvas.restoreState()
def myLaterPages(canvas, doc): PAGE_HEIGHT,PAGE_WIDTH = letter canvas.saveState() canvas.setPageSize(landscape(letter)) canvas.drawImage(frunt_pag2, 0,0, PAGE_WIDTH,PAGE_HEIGHT ) canvas.setStrokeColorRGB(0,1,1,alpha=0.1) ficha_no = doc.page-1 #canvas.setStrokeColorRGB(0.7,0.7,0.7) canvas.setFillColorRGB(0,0,0) SHOW_GRID = False if SHOW_GRID: n = 5 s = 200 canvas.setFillColorRGB(0,0,1) canvas.setFont('Helvetica',1) for x in range(s): for y in range(s): canvas.rect(x*n,y*n, width=n, height=n, stroke=1) canvas.drawString(x*n,y*n,"%s,%s" % ((x*n),(y*n)) ) # for i in range(s): # x= i*n # y=x # canvas.drawString(x,0,"%s" % (x)) #horizontal # canvas.drawString(0,y+1,"%s" % (x)) # vertical # canvas.drawString(x,600,"%s" % (x)) #horizontal # canvas.drawString(990,y,"%s" % (x)) # vertical # # canvas.setStrokeColorRGB(0,0,1,alpha=0.7) # canvas.setFont('Helvetica',1) # for i in range(610): # #canvas.rect(35,i*2, width=0.5, height=0.5, stroke=1) # canvas.drawString(35,i,"%s -" % (i,) ) canvas.setFont('Helvetica',7) LINE_1 = 508 #fecha_elaboracion = doc.fecha_elaboracion #if not fecha_elaboracion: # fecha_elaboracion = datetime.today() canvas.drawCentredString(137,LINE_1,str(fecha_elaboracion.year)) canvas.drawCentredString(162,LINE_1,str(fecha_elaboracion.month)) canvas.drawCentredString(180,LINE_1,str(fecha_elaboracion.day)) canvas.drawCentredString(290,LINE_1,"VALLE DEL CAUCA") canvas.drawCentredString(478,LINE_1,"SANTIAGO DE CALI") canvas.drawCentredString(581,LINE_1,"7") canvas.drawCentredString(598,LINE_1,"6") canvas.drawCentredString(620,LINE_1,"0") canvas.drawCentredString(645,LINE_1,"0") canvas.drawCentredString(673,LINE_1,"1") canvas.drawCentredString(740,LINE_1,"Ficha No. %s" % (int(ficha_no)+int(no_ficha_inicial)-1)) canvas.drawCentredString(177,142,"ESAUD URRUTIA NOEL") canvas.drawCentredString(177,132,"Secretario de Desarrollo Territorial y Bienestar Social") canvas.drawCentredString(177,123,"71.993.571 de Caceres") canvas.setFont('Helvetica',5) canvas.drawString(75,115, "Elaboro: %s" % elaboro) canvas.drawString(215,115, "Reviso: %s" % reviso) LINES = [401,390, 379, 368,358, 347, 336, 325, 314, 303, 293, 282, 272, 261, 250, 238, 228, 218, 207, 197 ] LINE_1_L = 0 i=0 ini = (ficha_no*20)-20 fin = (ficha_no*20) for row in doc.rows[ini:fin]: #[total_pages:]: line = LINES[i] canvas.drawCentredString(53,line, row["fecha_inscripcion"]) canvas.drawCentredString(98,line,row["cedula"]) canvas.drawCentredString(147,line,row["apellido1"]) canvas.drawCentredString(195,line,row["apellido2"]) canvas.drawCentredString(244,line,row["nombre1"]) canvas.drawCentredString(292,line,row["nombre2"]) canvas.drawCentredString(381,line,row["direccion"]) canvas.drawCentredString(472,line,row["telefono"]) canvas.drawCentredString(512,line,row["fecha_nac_ano"]) canvas.drawCentredString(544,line,row["fecha_nac_mes"]) canvas.drawCentredString(576,line,row["fecha_nac_dia"]) canvas.drawCentredString(598,line,row["genero"]) canvas.drawCentredString(614,line,row["p_sisben_1"]) canvas.drawCentredString(627,line,row["p_sisben_2"]) canvas.drawCentredString(638,line,row["p_sisben_3"]) canvas.drawCentredString(653,line,row["p_sisben_4"]) canvas.drawCentredString(673,line,row["ubicacion"]) canvas.drawCentredString(700,line,row["tiempo_residencia"]) canvas.drawCentredString(722,line,row["condicion_am"]) canvas.drawCentredString(738,line,row["con_personas_cargo"]) canvas.drawCentredString(754,line,row["discapacitado"]) canvas.drawCentredString(768,line,row["indigena"]) i=i+1 canvas.restoreState()
def set_stroke_color(canvas, color): canvas.setStrokeColorRGB(color["r"], color["g"], color["b"]) canvas.setStrokeAlpha(numpy.asscalar(color["a"]))
canvas.circle(300, 500, 80, stroke=0, fill=1) # Sem contorno e com preenchimento # # Colorindo elementos # # Parâmetros (R, G, B) canvas.setFillColorRGB(255, 0, 0) canvas.rect(60, 300, 50, 100, stroke=0, fill=1) # Somente uma escala para tons de cinza (0 - 1) canvas.setFillGray(0.9) canvas.rect(180, 300, 50, 100, stroke=0, fill=1) # Alterando a cor da borda canvas.setStrokeColorRGB(0, 0, 255) canvas.rect(300, 300, 50, 100, stroke=1, fill=1) # # Utilizando o HexCode # from reportlab.lib.colors import HexColor canvas.setFillColor(HexColor('#ff8100')) canvas.rect(420, 300, 50, 100, stroke=1, fill=1) canvas.save()
canvas.drawString(320, 561, 'Client Matter Number: ') canvas.drawString(320, 549, 'Total Amount Due: ') canvas.drawString(320, 537, 'Processed By: ') canvas.drawString(320, 525, 'Authorized By: ') canvas.setFont('pala', 9) canvas.drawString(390, 585, 'April 14, 2021') canvas.drawString(390, 573, 'Test orders Aaron') #canvas.drawString(390, 561,'Client Matter Number: ') canvas.drawString(405, 549, '$144945') canvas.drawString(390, 537, 'Aaron Sauber') canvas.drawString(390, 525, 'Judith Testing') #function header(canvas) #seperator line canvas.setStrokeColorRGB(0.8, 0.8, 0.8) canvas.line(72, 635, 540, 635) #function first_page_boxes(canvas) canvas.setFillColorRGB(0, 0.4, 0.7) canvas.rect(20, 465, 572, 18, fill=1) canvas.setFillColorRGB(1, 1, 1) canvas.setFont('Helvetica', 10) canvas.drawString(30, 470, 'SUMMARY') canvas.save()