def confidential(self, canvas):
        canvas.saveState()

        canvas.translate(18.5*cm, 27.4*cm)

        canvas.setLineWidth(3)
        canvas.setFillColorRGB(1, 0, 0)
        canvas.setStrokeGray(0.5)

        p = canvas.beginPath()
        p.moveTo(10, 0)
        p.lineTo(20, 10)
        p.lineTo(30, 0)
        p.lineTo(40, 10)
        p.lineTo(30, 20)
        p.lineTo(40, 30)
        p.lineTo(30, 40)
        p.lineTo(20, 30)
        p.lineTo(10, 40)
        p.lineTo(0, 30)
        p.lineTo(10, 20)
        p.lineTo(0, 10)

        canvas.drawPath(p, fill=1, stroke=0)

        canvas.restoreState()
示例#2
0
    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_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()
示例#4
0
    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()
示例#5
0
文件: e4.py 项目: leogao/examples
def colorsRGB(canvas):
    from reportlab.lib import colors
    from reportlab.lib.units import inch
    black = colors.black
    y = x = 0; dy=inch*3/4.0; dx=inch*5.5/5; w=h=dy/2; rdx=(dx-w)/2
    rdy=h/5.0; texty=h+2*rdy
    canvas.setFont("Helvetica",10)
    for [namedcolor, name] in (
            [colors.lavenderblush, "lavenderblush"],
            [colors.lawngreen, "lawngreen"],
            [colors.lemonchiffon, "lemonchiffon"],
            [colors.lightblue, "lightblue"],
            [colors.lightcoral, "lightcoral"]):
        canvas.setFillColor(namedcolor)
        canvas.rect(x+rdx, y+rdy, w, h, fill=1)
        canvas.setFillColor(black)
        canvas.drawCentredString(x+dx/2, y+texty, name)
        x = x+dx
    y = y + dy; x = 0
    for rgb in [(1,0,0), (0,1,0), (0,0,1), (0.5,0.3,0.1), (0.4,0.5,0.3)]:
        r,g,b = rgb
        canvas.setFillColorRGB(r,g,b)
        canvas.rect(x+rdx, y+rdy, w, h, fill=1)
        canvas.setFillColor(black)
        canvas.drawCentredString(x+dx/2, y+texty, "r%s g%s b%s"%rgb)
        x = x+dx
    y = y + dy; x = 0
    for gray in (0.0, 0.25, 0.50, 0.75, 1.0):
        canvas.setFillGray(gray)
        canvas.rect(x+rdx, y+rdy, w, h, fill=1)
        canvas.setFillColor(black)
        canvas.drawCentredString(x+dx/2, y+texty, "gray: %s"%gray)
        x = x+dx
示例#6
0
    def confidential(self, canvas):
        canvas.saveState()

        canvas.translate(18.5 * cm, 27.4 * cm)

        canvas.setLineWidth(3)
        canvas.setFillColorRGB(1, 0, 0)
        canvas.setStrokeGray(0.5)

        p = canvas.beginPath()
        p.moveTo(10, 0)
        p.lineTo(20, 10)
        p.lineTo(30, 0)
        p.lineTo(40, 10)
        p.lineTo(30, 20)
        p.lineTo(40, 30)
        p.lineTo(30, 40)
        p.lineTo(20, 30)
        p.lineTo(10, 40)
        p.lineTo(0, 30)
        p.lineTo(10, 20)
        p.lineTo(0, 10)

        canvas.drawPath(p, fill=1, stroke=0)

        canvas.restoreState()
示例#7
0
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()
示例#8
0
def simple_customer_background(canvas, document):
    header_text = document.title
    sub_header_text = document.subject

    canvas.saveState()
    # canvas.drawImage("background.jpg", 0,0, A4[0], A4[1])

    canvas.drawImage(os.path.join(resource_dir, "letter_header.png"),
                     (A4[0] - 18.924 * cm) / 2, A4[1] - 3.294 * cm - 0.5 * cm,
                     18.924 * cm, 3.294 * cm)
    canvas.drawImage(os.path.join(resource_dir, "letter_footer.png"),
                     (A4[0] - 18.911 * cm) / 2, 0.8 * cm, 18.911 * cm,
                     1.532 * cm)

    canvas.setLineWidth(0.1)
    canvas.setFillColorRGB(0.8, 0.8, 0.8)
    # canvas.rect(1*cm,23*cm, A4[0]-2*cm,1*cm,stroke=True,fill=True)

    # canvas.setFillColorRGB(1,0,0)
    # canvas.rect(1*cm,3*cm, (A4[0]-2*cm)/2,5*cm,stroke=True,fill=False)
    # canvas.rect(1*cm+ (A4[0]-2*cm)/2, 3*cm, (A4[0]-2*cm)/2,5*cm,stroke=True,fill=False)

    # if header_text:
    #     canvas.setFont('Helvetica-Bold', 16)
    #     canvas.setFillColorRGB(0,0,0)
    #     canvas.drawString(1.25*cm,23.3*cm,header_text)

    # if sub_header_text:
    #     canvas.setFont('Helvetica', 14)
    #     canvas.setFillColorRGB(0,0,0)
    #     canvas.drawRightString(A4[0] - 1.2*cm,23.3*cm,sub_header_text)

    canvas.restoreState()
示例#9
0
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)
示例#10
0
 def draw_heading(self, canvas):
     text = {'de': 'T3P-Konfiguration', 'en': 'T3P-Configuration'}
     canvas.saveState()
     canvas.setFont(self.font_bold, 14)
     canvas.setFillColorRGB(255, 255, 255)
     x = self.dina4[0]/2
     canvas.drawCentredString(x, 800, text[self.lang])
     canvas.restoreState()
示例#11
0
 def draw_watermark(self, canvas):
     if self._watermark:
         canvas.saveState()
         canvas.rotate(60)
         canvas.setFillColorRGB(0.9, 0.9, 0.9)
         canvas.setFont('%s' % self.style.fontName, 120)
         canvas.drawCentredString(195 * mm, -30 * mm, self._watermark)
         canvas.restoreState()
 def draw_watermark(self, canvas):
     if self._watermark:
         canvas.saveState()
         canvas.rotate(60)
         canvas.setFillColorRGB(0.9, 0.9, 0.9)
         canvas.setFont('%s' % self.style.fontName, 120)
         canvas.drawCentredString(195*mm, -30*mm, self._watermark)
         canvas.restoreState()
示例#13
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 generate_label(
    canvas: canvas.Canvas,
    string: str,
    location: Location,
    font: Font,
    color: Color,
) -> None:
    canvas.setFont(font.font_name, font.font_size)
    canvas.setFillColorRGB(color.r, color.g, color.b)
    canvas.drawString(location.x, location.y, string)
 def draw(self):
     canvas = self.canv
     # Texte label
     canvas.setFillColorRGB(0, 0, 0)
     canvas.setFont("Helvetica", 9)
     canvas.drawString(15, 1, "%s : %s" % (self.label, minutesEnHeures(self.totalHeures)))
     # Carré de couleur
     if self.couleur != None :
         r, g, b = ConvertCouleur(FormateCouleur(self.couleur))
         canvas.setFillColorRGB(r, g, b)
         canvas.rect(0, 0, 10, 10, fill=1)
示例#16
0
    def render_over(self, x, y, canvas, template):
        color = hex_to_rgb(self.color)
        canvas.setFillColorRGB(color[0] / 255.0, color[1] / 255.0,
                               color[2] / 255.0)
        canvas.rect(x + (self.x * mm),
                    y + (self.y * mm),
                    self.width * mm,
                    self.height * mm,
                    fill=1)

        canvas.setFillColorRGB(0, 0, 0)
示例#17
0
文件: invoice.py 项目: ses4j/ts
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 _draw_single_border(self, canvas, x, width, height): 
        canvas.saveState()
        if type(self.BORDER_COLOR) == str:
            canvas.setFillColor(self.BORDER_COLOR)
        else:
            canvas.setFillColorRGB(self.BORDER_COLOR[0]/255,
                                   self.BORDER_COLOR[1]/255,
                                   self.BORDER_COLOR[2]/255)
        canvas.roundRect(x, 0, width, height,
                         self.CARD_CORNER_DIAMETER, stroke=0, fill=1)

        canvas.restoreState()
示例#19
0
文件: invoice.py 项目: ses4j/ts
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)
示例#20
0
 def draw(self):
     canvas = self.canv
     # Texte label
     canvas.setFillColorRGB(0, 0, 0)
     canvas.setFont("Helvetica", 9)
     canvas.drawString(
         15, 1, "%s : %s" % (self.label, minutesEnHeures(self.totalHeures)))
     # Carré de couleur
     if self.couleur != None:
         r, g, b = ConvertCouleur(FormateCouleur(self.couleur))
         canvas.setFillColorRGB(r, g, b)
         canvas.rect(0, 0, 10, 10, fill=1)
示例#21
0
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
示例#22
0
    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()
示例#23
0
 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()
示例#24
0
 def _general_data_rect(self, canvas, doc):
     canvas.saveState()
     top = 19.7 * cm
     left = self.page_width - self.margins['right'] - self.block_width
     width = self.block_width
     height = self.block_height
     canvas.setStrokeColor(red)
     canvas.setLineWidth(.5)
     canvas.rect(left, top, width, height, stroke=1)
     canvas.setFillColorRGB(.7, .7, .7)
     canvas.setFont(self.label_font, 25)
     canvas.drawCentredString(15.5 * cm, 22.4 * cm, _('INVOICE'))
     canvas.restoreState()
示例#25
0
 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()
示例#26
0
    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()
示例#27
0
	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, "INFORME DE CAPTURA DE INFRACCIONES")
		canvas.setFillColorRGB(1,0,0)
		canvas.setFontSize(18)
		canvas.setFontSize(10)
		canvas.setFillColorRGB(0,0,0)
		canvas.drawString(10,PAGE_HEIGHT-154, "DIRECCION GENERAL DE TRANSITO MUNICIPAL")
		
示例#28
0
 def draw(self):
     canvas = self.canv
     if type(self.label) != six.text_type:
         self.label = self.label.decode("iso-8859-15")
     # Texte label
     canvas.setFillColorRGB(0, 0, 0)
     canvas.setFont("Helvetica-Bold", 11)
     canvas.drawString(35, 0, self.label)
     # Ligne noire
     tailleLigne = LARGEUR_PAGE - (75 * 2)
     largeurLabel = canvas.stringWidth(self.label, "Helvetica-Bold", 11)
     canvas.line(0, 3, 30, 3)
     canvas.line(largeurLabel + 10 + 30, 3, tailleLigne, 3)
     canvas.rect(30, -3, largeurLabel + 10, 13, fill=0)
     canvas.line(0, 3.5, 0, -8)
 def draw(self):
     canvas = self.canv
     if type(self.label) != six.text_type :
         self.label = self.label.decode("iso-8859-15")
     # Texte label
     canvas.setFillColorRGB(0, 0, 0)
     canvas.setFont("Helvetica-Bold", 11)
     canvas.drawString(35, 0, self.label)
     # Ligne noire
     tailleLigne = LARGEUR_PAGE- (75*2)
     largeurLabel =  canvas.stringWidth(self.label, "Helvetica-Bold", 11)
     canvas.line(0, 3, 30, 3)
     canvas.line(largeurLabel + 10 + 30, 3, tailleLigne, 3)
     canvas.rect(30, -3, largeurLabel+10, 13, fill=0)
     canvas.line(0, 3.5, 0, -8)
     
     
示例#30
0
文件: rlab.py 项目: wiz21b/koi
def full_background(canvas, document):
    canvas.saveState()
    # canvas.drawImage("background.jpg", 0,0, A4[0], A4[1])

    canvas.drawImage(os.path.join(resource_dir, "letter_header.png"),
                     (A4[0] - 18.924 * cm) / 2, A4[1] - 3.294 * cm - 0.5 * cm,
                     18.924 * cm, 3.294 * cm)
    canvas.drawImage(os.path.join(resource_dir, "letter_footer.png"),
                     (A4[0] - 18.911 * cm) / 2, 0.8 * cm, 18.911 * cm,
                     1.532 * cm)

    # left_header_frame = platypus.Frame(A4[0] - 4*inch,A4[1] - 2*inch, 3*inch, 1*inch,showBoundary=True)
    # header2_frame_right = platypus.Frame(12*cm,22*cm, 7.5*cm, 1*cm,showBoundary=True)
    # body_frame = platypus.Frame(0.5*inch,3*inch, A4[0] - 1*inch,  A4[1] - 5.6*inch,showBoundary=True)
    # bottom_left_frame  = platypus.Frame(0.5*inch, 1*inch, 3.3*inch, 1.9*inch,showBoundary=True)
    # bottom_right_frame = platypus.Frame(A4[0] - 4.2*inch, 1*inch, 3.5*inch, 1.9*inch,showBoundary=True)

    canvas.setLineWidth(0.1)
    canvas.setFillColorRGB(0.8, 0.8, 0.8)
    canvas.rect(1 * cm,
                23 * cm,
                A4[0] - 2 * cm,
                1 * cm,
                stroke=True,
                fill=True)

    canvas.rect(1 * cm,
                8 * cm,
                A4[0] - 2 * cm,
                16 * cm,
                stroke=True,
                fill=False)

    canvas.setFillColorRGB(1, 0, 0)
    canvas.rect(1 * cm,
                3 * cm, (A4[0] - 2 * cm) / 2,
                5 * cm,
                stroke=True,
                fill=False)
    canvas.rect(1 * cm + (A4[0] - 2 * cm) / 2,
                3 * cm, (A4[0] - 2 * cm) / 2,
                5 * cm,
                stroke=True,
                fill=False)

    canvas.restoreState()
 def draw(self):
     canvas = self.canv
     # Texte label
     canvas.setFillColorRGB(0, 0, 0)
     canvas.setFont("Helvetica", 8)
     if self.totalHeures == None :
         canvas.drawString(15, 2, self.label)
     else:
         canvas.drawString(15, 2, "%s : %s" % (self.label, minutesEnHeures(self.totalHeures)))
     # Carré de couleur
     if self.couleur != None :
         if type(self.couleur) == tuple :
             r, g, b = ConvertCouleur(self.couleur)
         else:
             r, g, b = ConvertCouleur(FormateCouleur(self.couleur))
         canvas.setLineWidth(0.25)
         canvas.setFillColorRGB(r, g, b)
         canvas.rect(0, 0, 10, 10, fill=1)
示例#32
0
def place_caption(canvas, config, caption):
    caption_size  = caption.get('size',  config['caption']['size'])
    caption_font  = caption.get('font',  config['caption']['font'])
    caption_color = caption.get('color', config['caption']['color'])

    canvas.setFont(caption_font, caption_size)
    canvas.setFillColorRGB(*caption_color)

    margin   = config['margin']
    boxwidth = config['pagesize']['width'] - margin['left'] - margin['right']
    center_x = margin['left'] + boxwidth*0.5

    #asc_des = pdfmetrics.getAscentDescent(caption_font, fontSize=caption_size)
    #caption_height = asc_des[0] - asc_des[1]

    #descenders may extend below margin['bottom']
    canvas.drawCentredString(center_x, margin['bottom'], caption['text'])

    return caption_size #not taking descenders into account
示例#33
0
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 draw(self):
        canvas = self.canv
        couleurDate = None
        positionSeparation = 20
        
        # Couleur de la case Date de la journée
        if AFFICHER_VACANCES == True and self.dateDD in LISTE_VACANCES : couleurDate = COULEUR_VACANCES
        if AFFICHER_WE == True and (self.dateDD.weekday() == 5 or self.dateDD.weekday() == 6) : couleurDate = COULEUR_WE
        if AFFICHER_FERIES == True and self.dateDD in LISTE_FERIES : couleurDate = COULEUR_FERIES
        
        if couleurDate != None :
            r, g, b = ConvertCouleur(couleurDate)
            canvas.setFillColorRGB(r, g, b)
            canvas.rect(0, 0, positionSeparation, self.hauteurCase, fill=1, stroke=False)
        
        # Texte date
        canvas.setFillColorRGB(0, 0, 0)
        canvas.setFont("Helvetica", 7)
        canvas.drawRightString(positionSeparation-2, 2, self.labelDate)
        
        # Trait séparation Date et Heures
        canvas.setLineWidth(0.25)
        canvas.line(positionSeparation, 0, positionSeparation, self.hauteurCase)
        
        # Si aucune présence ce jour -là
        if len(self.dictBarres) == 0 : return

        # Récup du nbre total d'heure de la journée
        totalJour = self.dictBarres["totalJour"]
        
        # Transformation du nombre d'heures par catégorie en pourcentage
        listeCategories = []
        for IDcategorie, nbreHeures in self.dictBarres.items():
            if IDcategorie != "totalJour" :
                largeurBarre = nbreHeures * 1.0 * (self.largeurCase-positionSeparation-0.25) / totalJour
                listeCategories.append( (largeurBarre, IDcategorie) )
        listeCategories.sort()
        
        # Création des graphes
        if AFFICHER_COULEUR_CATEGORIES == True :
            positionTemp = positionSeparation+0.25
            for largeurBarre, IDcategorie in listeCategories :
                r, g, b = ConvertCouleur(FormateCouleur(DICT_CATEGORIES[IDcategorie][2]))
                canvas.setFillColorRGB(r, g, b)
                canvas.rect(positionTemp, 0, largeurBarre, self.hauteurCase, fill=1, stroke=False)
                positionTemp += largeurBarre
        
        # Label Total Heure de la journée
        if AFFICHER_HEURES == True :
            canvas.setFillColorRGB(0, 0, 0)
            canvas.setFont("Helvetica", 7)
            canvas.drawRightString(self.largeurCase-2, 2, "%s" % minutesEnHeures(totalJour))
 def draw(self):
     canvas = self.canv
     # Texte label
     canvas.setFillColorRGB(0, 0, 0)
     canvas.setFont("Helvetica", 8)
     if self.totalHeures == None:
         canvas.drawString(15, 2, self.label)
     else:
         canvas.drawString(
             15, 2,
             "%s : %s" % (self.label, minutesEnHeures(self.totalHeures)))
     # Carré de couleur
     if self.couleur != None:
         if type(self.couleur) == tuple:
             r, g, b = ConvertCouleur(self.couleur)
         else:
             r, g, b = ConvertCouleur(FormateCouleur(self.couleur))
         canvas.setLineWidth(0.25)
         canvas.setFillColorRGB(r, g, b)
         canvas.rect(0, 0, 10, 10, fill=1)
示例#36
0
def makeHF(topleft, topright, bottomleft, bottomright):
    packet = BytesIO()
    canvas = Canvas(packet, pagesize=letter)
    page_width, page_height = canvas._pagesize
    canvas.setFont('ArialB', 10)
    canvas.setFillColorRGB(0.2, 0.568, 0.792)
    canvas.drawString(0.5 * page_width / 8.5, (11 - 0.5) * page_height / 11,
                      topleft)
    textWidth = stringWidth(topright, 'Arial', 10)
    canvas.drawString((8.5 - 0.5) * page_width / 8.5 - textWidth,
                      (11 - 0.5) * page_height / 11, topright)
    canvas.drawString(0.5 * page_width / 8.5, 0.5 * page_height / 11,
                      bottomleft)

    textWidth = stringWidth(bottomright, 'Arial', 10)
    canvas.drawString((8.5 - 0.5) * page_width / 8.5 - textWidth,
                      0.5 * page_height / 11, bottomright)
    canvas.save()
    packet.seek(0)
    return (PdfFileReader(packet))
 def Barre(self, canvas, x, y, largeur, hauteur, label, heureDebut, heureFin, IDcategorie, facteurAgrandissement):
     # Dessin d'une barre       
     x = ((x-COORD_LIGNE[0]) * facteurAgrandissement) + COORD_LIGNE[0]
     largeur = largeur * facteurAgrandissement
     paddingTexte = 3
     nom, IDcat_parent, ordre, couleur, totalHeures = DICT_CATEGORIES[IDcategorie]
     r, g, b = ConvertCouleur(FormateCouleur(couleur))
     canvas.setFillColorRGB(r, g, b)
     canvas.rect(x, y, largeur, hauteur, fill=1)
     canvas.setFillColorRGB(0, 0, 0)
     canvas.setFont("Helvetica", 8)
     # Dessin des heures
     if MODE_TEXTE == 2 : y = y + 10
     heureDebut = str(heureDebut)[0:2] + "h" + str(heureDebut)[3:5]
     canvas.drawString(x + paddingTexte, y + paddingTexte, heureDebut)
     heureFin = str(heureFin)[0:2] + "h" + str(heureFin)[3:5]
     canvas.drawRightString(largeur + x - paddingTexte, y + paddingTexte, heureFin)
     # Dessin de l'intitulé
     if MODE_TEXTE == 2 and label != "" :
         canvas.drawString(x + paddingTexte, y + paddingTexte - 10, label)
示例#38
0
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()
示例#39
0
def titulo_pdf_proovedor(canvas, doc):
    datos = DATOS_DE_LA_EMPRESA.objects.get(pk=1)
    membrete= '%s \n RIF %s \n DIRECCION: %s \n TELEFONOS: %s / %s \n ZONA POSTAL: %s'%(datos.NOMBRE.upper(),
                                     datos.RIF.upper(), datos.DIRECCION.upper(),
                                     datos.TELEFONO, datos.CELULAR,
                                     datos.CODIGO_POSTAL)
    nombre= datos.NOMBRE.upper()
    rif = 'RIF: %s'% (datos.RIF.upper())
    direccion= 'DIRECCION: %s'% (datos.DIRECCION.upper())
    telefonos = '%s / %s'% (datos.TELEFONO, datos.CELULAR)
    codigo_postal='CODIGO POSTAL: %s'% (datos.CODIGO_POSTAL)


    canvas.saveState()
    canvas.setFillColorRGB(0,0,0)
    #canvas.drawCentredString(50, PAGE_HEIGHT-150, membrete)

    #canvas.drawString(100, 800, str(libro.titulo))#Obtenemos el titulo de un libro y lap.drawImage(str(libro.portada.url), 100, 100, width=400, height=600) 
    # mostramos y guardamos el objeto PDF. 

    canvas.setFont('Times-Bold',12)
    canvas.drawCentredString(PAGE_WIDTH/2.0, PAGE_HEIGHT-110, nombre)
    canvas.roundRect(0, 750, 694, 120, 20, stroke=0, fill=1) 

    canvas.drawCentredString(PAGE_WIDTH/2.0, PAGE_HEIGHT-130, rif)
    textobject = canvas.beginText()
    textobject.setTextOrigin(inch, 400)
    textobject.setFont("Helvetica-Oblique", 14)
    for line in direccion:
        textobject.textLine(line)
    textobject.setFillGray(0.4)
    textobject.textLines(direccion)
    canvas.drawText(textobject)
    #canvas.drawString(100, 100, direccion)
    canvas.drawCentredString(PAGE_WIDTH/2.0, PAGE_HEIGHT-170, telefonos)
    canvas.drawCentredString(PAGE_WIDTH/2.0, PAGE_HEIGHT-190, codigo_postal)

    canvas.drawString(12, 10 * 50, "First Page / %s" % membrete)

    canvas.restoreState()
示例#40
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()
示例#41
0
    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()
示例#42
0
 def Barre(self, canvas, x, y, largeur, hauteur, label, heureDebut,
           heureFin, IDcategorie, facteurAgrandissement):
     # Dessin d'une barre
     x = ((x - COORD_LIGNE[0]) * facteurAgrandissement) + COORD_LIGNE[0]
     largeur = largeur * facteurAgrandissement
     paddingTexte = 3
     nom, IDcat_parent, ordre, couleur, totalHeures = DICT_CATEGORIES[
         IDcategorie]
     r, g, b = ConvertCouleur(FormateCouleur(couleur))
     canvas.setFillColorRGB(r, g, b)
     canvas.rect(x, y, largeur, hauteur, fill=1)
     canvas.setFillColorRGB(0, 0, 0)
     canvas.setFont("Helvetica", 8)
     # Dessin des heures
     if MODE_TEXTE == 2: y = y + 10
     heureDebut = str(heureDebut)[0:2] + "h" + str(heureDebut)[3:5]
     canvas.drawString(x + paddingTexte, y + paddingTexte, heureDebut)
     heureFin = str(heureFin)[0:2] + "h" + str(heureFin)[3:5]
     canvas.drawRightString(largeur + x - paddingTexte, y + paddingTexte,
                            heureFin)
     # Dessin de l'intitulé
     if MODE_TEXTE == 2 and label != "":
         canvas.drawString(x + paddingTexte, y + paddingTexte - 10, label)
示例#43
0
def write_title_and_credits(canvas, text, nib_width, partitions, angles, pagesize, horizontal = False):
    canvas.setFillColorRGB(0, 0, 0, 1)
    if not horizontal:
        canvas.rotate(90)
    t = canvas.beginText()
    if text:
        canvas.setTitle(text)
        t.setTextOrigin(10*mm, 3*mm)
        t.setFont("Times-Italic", 20)
        t.textOut(text)
        t.setFont("Times-Italic", 10)
        t.textOut("  (%smm nib, Partitions:%s, angles:%s)"%(nib_width, partitions, angles))

    # canvas.setFillColorRGB(0, 0, 0, 0.2)
    # w,l = (float(x)/100 for x in A4)
    # print w,",",l
    if not horizontal:
        t.setTextOrigin(10*mm, -pagesize[0]-5*mm)
    t.setFont("Times-Roman", 10)
    t.textOut(" Generated using ")
    t.setFont("Times-Italic", 10)
    t.textOut("http://calligraffiti.in/rulings")
    canvas.drawText(t)
示例#44
0
def write_title_and_credits(canvas, opts, pagesize):
    canvas.saveState()

    if pagesize[0] > pagesize[1]:
        width = pagesize[0]
        height = pagesize[1]
    else:
        width = pagesize[1]
        height = pagesize[0]
        canvas.rotate(90)
        canvas.translate(0, -pagesize[0])

    t = canvas.beginText()
    t.setFont("Times-Roman", 10)
    l = stringWidth(__COPYRIGHT__, "Times-Roman", 10)
    t.setTextOrigin(width - l - 5*mm, height+5*mm)
    t.textOut(__COPYRIGHT__)
    canvas.setFillColorRGB(0, 0, 0, 0.4)
    canvas.drawText(t)

    canvas.setFillColorRGB(0, 0, 0, 1)

    if opts.title:
        t = canvas.beginText()
        t.setTextOrigin(5*mm, height+5*mm)
        t.setFont("Times-Italic", 20)
        t.textOut(opts.title)
        canvas.drawText(t)

    t = canvas.beginText()
    t.setTextOrigin(5*mm, -5*mm)
    t.setFont("Times-Italic", 8)
    t.textOut(opts.subject)
    canvas.drawText(t)

    canvas.restoreState()
示例#45
0
 def pageCanvas(self, canvas, doc):
     """
     Forming of the page layout (backround color...)
     """
     canvas.saveState()
     canvas.setFont(self.FONTNAME, self.FONTSIZE)
     canvas.setFillColorRGB(
         self.BCKGRDCOLOR[0], self.BCKGRDCOLOR[1], self.BCKGRDCOLOR[2])
     canvas.rect(0, 0, self.WIDTH, self.HEIGHT, stroke=0, fill=1)
     canvas.restoreState()
     canvas.saveState()
     p = canvas.beginPath()
     p.rect(0, self.HEIGHT - 80, self.WIDTH, 80)
     canvas.clipPath(p, stroke=0)
     canvas.linearGradient(
         0, self.HEIGHT - 80, self.WIDTH, self.HEIGHT - 80,
         (black, blue), extend=False)
     canvas.restoreState()
     canvas.saveState()
     canvas.setFillColorRGB(1, 1, 1)
     canvas.setFont(self.FONTNAME, self.FONTSIZE)
     canvas.drawString(40, 714, "%s.%s:%s" % (self.PASSAGE[0], 
                     self.PASSAGE[1], self.PASSAGE[2]))
     canvas.restoreState()
示例#46
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()
示例#47
0
def genSingleNameTag(canvas, datum, xcoord, ycoord):
    # generate a single name tag
    # dimensions: 252 x 160

    # print background image
    #im = Image.open('newbackground.jpg')
    myimg = 'final_devoted_bg.jpg'
    canvas.drawImage(myimg, xcoord, ycoord, width=252, height=160)

    # unpack datum
    # print datum
    personName, lifeGroup, housing, smallGroup = datum  # might include keyholder later

    # print personName
    # modify name / fontSize if need
    nameFontSize = getNameFontSize(canvas, personName)
    canvas.setFont('Raleway Bold', nameFontSize)
    canvas.setFillColorRGB(0, 0, 0)
    canvas.drawCentredString(xcoord + 126, ycoord + 85 - nameFontSize / 2,
                             personName)  #ycoord was 70

    # print housing
    canvas.setFont('Raleway Bold', 15)
    canvas.setFillColorRGB(0, 0, 0)
    canvas.drawString(xcoord + 5, ycoord + 5, housing)  #240,12

    # print lifeGroup (this will be where they're from)
    canvas.setFont('Raleway Regular', 20)  #24
    canvas.setFillColorRGB(0, 0, 0)
    canvas.drawCentredString(xcoord + 126, ycoord + 40, lifeGroup)  #12, 12

    # print smallGroup
    # check if they're actually in a small group?
    canvas.setFont('Raleway Bold', 15)
    canvas.setFillColorRGB(0, 0, 0)
    canvas.drawString(xcoord + 180, ycoord + 5, smallGroup)
示例#48
0
def draw_circles(canvas, nib_width, partitions, gap, nrulings, top_margin, center):
    "Draws circles and separators on the page"
    partition_radius = sum((float(x) for x in partitions.split(",")),0.0) # Sum of the ascenders, descenders and body
    partition_radius += gap # Add the gap

    offset = nrulings * partition_radius * nib_width * mm
    
    for i in range(nrulings, 1, -1):
        # Draw gap
        canvas.setFillColorRGB(0, 0, 0, 1)
        canvas.circle(center[0], center[1], offset, fill = 1, stroke = 1)
        offset -= gap *nib_width * mm
        # Draw partitions
        canvas.setFillColorRGB(1, 1, 1, 1)
        offset = draw_circle_set(canvas, center[0], center[1], offset, nib_width, partitions)

    # Draw initial inner margin
    canvas.setFillColorRGB(0.5, 0.5, 0.5, 1)
    canvas.circle(center[0], center[1], offset, fill = 1, stroke = 1)
示例#49
0
def draw_circles(canvas, nib_width, rules, gap, nrulings, top_margin, center):
    "Draws circles and separators on the page"
    partition_radius = sum((float(x.split("/")[0]) for x in rules),0.0) # Sum of the ascenders, descenders and body
    partition_radius += gap # Add the gap

    offset = nrulings * partition_radius * nib_width * mm
    
    for i in range(nrulings, 1, -1):
        # Draw gap
        canvas.setFillColorRGB(0, 0, 0, 1)
        canvas.circle(center[0], center[1], offset, fill = 1, stroke = 1)
        offset -= gap *nib_width * mm
        # Draw rules
        canvas.setFillColorRGB(1, 1, 1, 1)
        offset = draw_circle_set(canvas, center[0], center[1], offset, nib_width, rules)

    # Draw initial inner margin
    canvas.setFillColorRGB(0.5, 0.5, 0.5, 1)
    canvas.circle(center[0], center[1], offset, fill = 1, stroke = 1)
示例#50
0
    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()
示例#51
0
	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()
示例#52
0
 def set_fill_color(canvas, color):
     canvas.setFillColorRGB(color["r"], color["g"], color["b"])
     canvas.setFillAlpha(numpy.asscalar(color["a"]))
示例#53
0
def colors2(canvas): 
    from reportlab.lib.units import inch 
    
    x = 0; dx = 0.4*inch 
    for i in range(4): 
        for color in (colors.pink, colors.green, colors.brown): 
            canvas.setFillColor(color) 
            canvas.rect(x,0,dx,3*inch,stroke=0,fill=1) 
            x = x+dx 
    canvas.setFillColor(colors.white) 
    canvas.setStrokeColor(colors.white) 
    canvas.setFont("Helvetica-Bold", 85) 
    canvas.drawCentredString(2.75*inch, 1.3*inch, "OPEN") 
    return
    
    
    textobject = canvas.beginText() 
    textobject.setTextOrigin(inch, 2.5*inch) 
    textobject.setFont("Helvetica-Oblique", 14) 
    for line in lyrics: 
        textobject.textLine(line) 
    textobject.setFillGray(0.4) 
    textobject.textLines(''' 
    With many apologies to the Beach Boys 
    and anyone else who finds this objectionable 
    ''') 
    canvas.drawText(textobject) 
    
    black = colors.black 
    y = x = 0; dy=inch*3/4.0; dx=inch*5.5/5; w=h=dy/2; rdx=(dx-w)/2 
    rdy=h/5.0; texty=h+2*rdy 
    canvas.setFont("Helvetica",10) 
    for [namedcolor, name] in ( 
           [colors.lavenderblush, "lavenderblush"], 
           [colors.lawngreen, "lawngreen"], 
           [colors.lemonchiffon, "lemonchiffon"], 
           [colors.lightblue, "lightblue"], 
           [colors.lightcoral, "lightcoral"]): 
        canvas.setFillColor(namedcolor) 
        canvas.rect(x+rdx, y+rdy, w, h, fill=1) 
        canvas.setFillColor(black) 
        canvas.drawCentredString(x+dx/2, y+texty, name) 
        x = x+dx 
    y = y + dy; x = 0 
    for rgb in [(1,0,0), (0,1,0), (0,0,1), (0.5,0.3,0.1), (0.4,0.5,0.3)]: 
        r,g,b = rgb 
        canvas.setFillColorRGB(r,g,b) 
        canvas.rect(x+rdx, y+rdy, w, h, fill=1) 
        canvas.setFillColor(black) 
        canvas.drawCentredString(x+dx/2, y+texty, "r%s g%s b%s"%rgb) 
        x = x+dx 
    y = y + dy; x = 0 
    for cmyk in [(1,0,0,0), (0,1,0,0), (0,0,1,0), (0,0,0,1), (0,0,0,0)]: 
        c,m,y1,k = cmyk 
        canvas.setFillColorCMYK(c,m,y1,k) 
        canvas.rect(x+rdx, y+rdy, w, h, fill=1) 
        canvas.setFillColor(black) 
        canvas.drawCentredString(x+dx/2, y+texty, "c%s m%s y%s k%s"%cmyk) 
        x = x+dx 
    y = y + dy; x = 0 
    for gray in (0.0, 0.25, 0.50, 0.75, 1.0): 
        canvas.setFillGray(gray) 
        canvas.rect(x+rdx, y+rdy, w, h, fill=1) 
        canvas.setFillColor(black) 
示例#54
0
    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()
示例#55
0
 def draw(self, pmlOp, pageNr, canvas, pe):
     canvas.setFillColorRGB(*pmlOp.color)
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
示例#57
0
def makepdftoc(titlelimit, pageids, toppages, titles, toc, spills, pdflocs,
               chaplocs, outfolder, site, auth, stylesheet, tocl, headpages):
    global title_short
    global valid_date
    styles = getSampleStyleSheet()
    canvas = Canvas(outfolder + "/atoc.pdf", pagesize=letter)
    page_width, page_height = canvas._pagesize
    styles.add(ParagraphStyle(name='Justify', alignment=TA_JUSTIFY))
    styles.add(
        ParagraphStyle(name='TOCsection',
                       parent=styles['Normal'],
                       textColor='#3391CA',
                       fontSize=12,
                       fontName='ArialB'))
    styles.add(
        ParagraphStyle(name='TOCitem',
                       parent=styles['Normal'],
                       leftIndent=page_width / 11 / 4,
                       fontSize=10))
    styles.add(
        ParagraphStyle(name='right',
                       parent=styles['Normal'],
                       alignment=TA_RIGHT,
                       fontSize=10))
    styles.add(
        ParagraphStyle(name='right_h',
                       parent=styles['Normal'],
                       alignment=TA_RIGHT,
                       textColor='#3391CA',
                       fontSize=12,
                       fontName='ArialB'))
    canvas.drawImage('doc_chapter_bg.png',
                     0,
                     0,
                     width=page_width,
                     height=page_height)
    pdfmetrics.registerFont(TTFont('Arial', 'Arial.ttf'))
    canvas.setFont('ArialB', 28)
    canvas.setFillColorRGB(1, 1, 1)
    x = 0.5 * page_width / 8.5
    rowsonfirstpage = 34
    #x=72
    y = 9.5 * page_height / 11
    canvas.drawString(x, y, 'Table of Contents')
    tbl_data = []
    ix = 1
    buildadoc = False
    lastsec = ''
    colw = [page_width - x * 2 - page_width / 11, page_width / 11]
    pagesum = 1 + tocl
    bookmarks = []
    # print(spills)
    # print('spills: '+str(len(spills)))
    # print('toc: '+str(len(toc)))
    for title, pageid, topp, pdfn, spill, pdfloc in zip(
            titles, pageids, toppages, toc, spills, pdflocs):
        if topp != lastsec:
            ix = ix + 1
            if ix == rowsonfirstpage:
                tbl = Table(tbl_data, colw)
                w, h = tbl.wrapOn(canvas, page_width - 2 * x,
                                  page_height - 2 * x)
                tbl.drawOn(canvas, x, 0.813 * page_height - h)
                # print('###################################################')
                # print("Page height minus h: "+str(0.813*page_height-h))
                # print(page_height)
                # print(h)
                canvas.showPage()
                canvas.save()
                doc = SimpleDocTemplate(outfolder + "/atoc2.pdf",
                                        pagesize=letter,
                                        rightMargin=x,
                                        leftMargin=x,
                                        topMargin=72,
                                        bottomMargin=18)
                Story = []
                tbl_data = []
                buildadoc = True
            tbl_data.append([
                Paragraph('' + topp + '', styles["TOCsection"]),
                Paragraph(str(pagesum), styles['right_h'])
            ])
            # print(chaplocs)
            try:
                #addCoupaTexttoPDF(chaplocs[topp],'','',valid_date,pagesum)
                addCoupaTexttoPDF(chaplocs[topp], '', '', '', '')
            except:
                # print('File was modified')
                continue
            lastsec = topp
            bookmarks.append([pagesum - 1, topp, []])
            pagesum = pagesum + 1 + spill
        tbl_data.append([
            Paragraph(title, styles["TOCitem"]),
            Paragraph(str(pagesum), styles['right'])
        ])
        bookmarks[-1][2].append([pagesum - 1, title, []])
        ix = ix + 1
        if ix == rowsonfirstpage:
            tbl = Table(tbl_data, colw)
            w, h = tbl.wrapOn(canvas, page_width - 2 * x, page_height - 2 * x)
            tbl.drawOn(canvas, x, 0.813 * page_height - h)
            # print('###################################################')
            # print("Page height minus h: "+str(0.813*page_height-h))
            # print(page_height)
            # print(h)
            canvas.showPage()
            canvas.save()
            doc = SimpleDocTemplate(outfolder + "/atoc2.pdf",
                                    pagesize=letter,
                                    rightMargin=x,
                                    leftMargin=x,
                                    topMargin=72,
                                    bottomMargin=18)
            Story = []
            tbl_data = []
            buildadoc = True
        if (headpages):
            addCoupaTexttoPDF(pdfloc, title_short, topp, valid_date, pagesum)
        pagesum = pagesum + pdfn
    if buildadoc:
        tbl = Table(tbl_data, colw)
        Story.append(tbl)
        doc.build(Story)
    else:
        tbl = Table(tbl_data, colw)
        w, h = tbl.wrapOn(canvas, page_width - 2 * x, page_height - 2 * x)
        tbl.drawOn(canvas, x, 0.813 * page_height - h)
        # print('###################################################')
        # print("Page height minus h: "+str(0.813*page_height-h))
        # print(page_height)
        # print(h)
        canvas.showPage()
        canvas.save()
    return (bookmarks)
#
# Circulos
#

# 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
#
示例#59
0
文件: pdf.py 项目: HuBandiT/trelby
 def draw(self, pmlOp, pageNr, canvas, pe):
     canvas.setFillColorRGB(*pmlOp.color)