示例#1
1
 def draw_footer(self, canvas):
     canvas.saveState()
     footerwidth = self.dina4[0] - (2 * self.left)
     canvas.setFillColorCMYK(1, 0.5, 0, 0)
     canvas.rect(0, 0, width=self.dina4[0], height=50, fill=True)
     canvas.setFillColorCMYK(0, 0, 0, 0)
     canvas.setFont(self.font_bold, 14)
     x = self.dina4[0]/2
     canvas.drawCentredString(x, 25, 'www.imko.de')
     canvas.linkURL('http://www.imko.de', (0, 50, self.dina4[1], 0))
     canvas.restoreState()
示例#2
0
 def drawBounds(self, canvas):
     """Guidelines to help me draw - not needed in production"""
     canvas.setStrokeColor(colors.red)
     canvas.rect(-100, -70, 200, 140)
     canvas.line(-100, 0, 100, 0)
     canvas.line(0, 70, 0, -70)
     canvas.setStrokeColor(colors.black)
 def draw(self):
     if not self._at_top():
         canvas = self.canv
         canvas.setFillColor(self.fill_color)
         canvas.setFillColor("red")
         canvas.rect(self.xoffset, 0,
                     self.width, self.line_height, stroke=0, fill=1)
示例#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
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')
示例#6
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()
示例#7
0
def add_checkbox(canvas, x, y, label):
    """
    draw a checkbox and draw a single character on top of the checkbox

    Parameters
    ----------
    canvas : reportlab canvas object

    x : int
        the x coordinate of the top left corner of the box in points (pt)
    y : int
        the y coordinate of the top left corner of the box in points (pt)
    label: str
        A string representing the label that is drawn on top of the box, will only take the first character

    """
    box_size = current_app.config['CHECKBOX_SIZE']
    margin = current_app.config['CHECKBOX_MARGIN']
    x_label = x + 1  # location of the label
    y_label = y + margin  # remove fontsize from the y label since we draw from the bottom left up
    box_y = y - box_size  # remove the markboxsize because the y is the coord of the top
    # and reportlab prints from the bottom

    # check that there is a label to print
    if (label and not (len(label) == 0)):
        canvas.setFont(current_app.config['CHECKBOX_FONT'],
                       current_app.config['CHECKBOX_FONT_SIZE'])
        canvas.drawString(x_label, y_label, label[0])

    canvas.rect(x, box_y, box_size, box_size)
示例#8
0
def write_tile(i, pos=None, canvas=None):
    styles = getSampleStyleSheet()
    styleN = styles['Normal']
    styleN.spaceBefore = 10
    styleN.spaceAfter = 10
    styleN.textColor = white
    styleH = styles['Heading1']
    styleH.textColor = white
    styleH.alignment = 1
    styleN.alignment = 1



    canvas.saveState()
    canvas.setFillColor(red)
    canvas.rect(spacer + pos[0] * 40 * mm, 5 * mm + pos[1] * 80 * mm, 40 * mm, 80 * mm, fill=1, stroke=1)

    f = Frame(spacer + pos[0] * 40 * mm, pos[1] * 80 * mm - 5 * mm, 40 * mm, 40 * mm, showBoundary=0)
    f.addFromList([Paragraph('%i' % i, styleH)], canvas)

    f = Frame(spacer + pos[0] * 40 * mm, pos[1] * 80 * mm + 35 * mm, 40 * mm, 40 * mm, showBoundary=0)
    f.addFromList([Paragraph('%i' % i, styleH)], canvas)

    canvas.restoreState()
    if pos == (3, 2):
        canvas.showPage()
        pos = (0, 0)
    else:
        if pos[1] == 2:
            pos = (pos[0] + 1, 0)
        else:
            pos = (pos[0], pos[1] + 1)
    return pos
    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()
示例#10
0
 def myLaterPages(self,canvas, doc):
     canvas.saveState()
     canvas.setFont('Times-Roman',9)
     canvas.setStrokeColor('grey')
     canvas.rect(0.5*inch,0.5*inch, 7.27*inch, 10.6*inch,stroke=1, fill=0)
     canvas.drawString(PDF.PAGE_WIDTH*0.47, 0.8* inch, "Page %d " % (doc.page-1))
     canvas.restoreState()
示例#11
0
 def _add_page_outline(self, canvas):
     start_posn = self.start_posn
     canvas.setLineWidth(2)
     canvas.rect(cm, cm, PAGE_WIDTH - 2 * cm, PAGE_HEIGHT - 2 * cm)
     canvas.drawImage(LOGO_PATH,
                      0.5 * inch,
                      start_posn,
                      height=0.5 * inch,
                      width=1.875 * inch)
     canvas.setFont('Helvetica-Bold', 24)
     canvas.drawRightString(PAGE_WIDTH - (0.5 * inch),
                            start_posn + 0.15 * inch, 'REGISTRATION FORM')
     footer_text = 'This form created on '
     footer_text += datetime.now().strftime('%Y-%m-%d %I:%M:%S %p')
     canvas.setFont('Helvetica', 9)
     canvas.drawRightString(PAGE_WIDTH - (0.5 * inch), 0.5 * inch,
                            footer_text)
     self.start_posn = start_posn - 0.4 * inch
     sales_rep_text = 'BOOKING REP: '
     if self.user.first_name or self.user.last_name:
         sales_rep_text += self.user.first_name + ' ' + self.user.last_name
     else:
         sales_rep_text += self.user.username
     canvas.setFont('Helvetica-Bold', 9.5)
     canvas.drawString(0.5 * inch, 0.5 * inch, sales_rep_text)
示例#12
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()
def printColors(canvas):  
    canvas.setFont("Helvetica",10)
    y = x = 0; dy=inch*1/2.0; dx=1*inch; w=h=dy/2  
    rdx=(dx-w)/2; rdy=h/5.0
    available_paper = 10*inch

    for name, color in colors.getAllNamedColors().iteritems():

    # for [namedcolor, name] in (  
        # 'darkseagreen', 'darkslateblue',
        #  [colors.darkblue, 'darkblue'],
        #  [colors.darkcyan, 'darkcyan'],
        #  [colors.darkolivegreen, 'darkolivegreen'],
        #  [colors.cornflower, 'cornflower'],
        #  [colors.orchid, 'orchid'],
        
        #  [colors.lavenderblush, "lavenderblush"],  
        #  [colors.lawngreen, "lawngreen"],  
        #  [colors.lemonchiffon, "lemonchiffon"],  
        #  [colors.lightblue, "lightblue"],  
        #  [colors.lightcoral, "lightcoral"]):  
        canvas.setFillColor(color)  
        canvas.rect(x+rdx, y+rdy, w, h, fill=1)
        canvas.setFillColor(colors.black)  
        canvas.drawString(x+dx/4 + 1*inch, y+rdy, name)  
        rdy += .2*inch
        available_paper -= (y+rdy)
        if available_paper < 1*inch:
            c.showPage()
            y = x = 0; dy=inch*1/2.0; dx=1*inch; w=h=dy/2  
            rdx=(dx-w)/2; rdy=h/5.0
            available_paper = 10*inch
示例#14
0
    def process(self):
        kwargs = dict(self.getAttributeValues(attrMapping=self.attrMapping))
        preserve = kwargs.pop('preserveAspectRatio')
        show = kwargs.pop('showBoundary')

        if preserve:
            imgX, imgY = kwargs['image'].getSize()

            # Scale image correctly, if width and/or height were specified
            if 'width' in kwargs and 'height' not in kwargs:
                kwargs['height'] = imgY * kwargs['width'] / imgX
            elif 'height' in kwargs and 'width' not in kwargs:
                kwargs['width'] = imgX * kwargs['height'] / imgY
            elif 'width' in kwargs and 'height' in kwargs:
                if float(kwargs['width']) / kwargs['height'] > float(
                        imgX) / imgY:
                    kwargs['width'] = imgX * kwargs['height'] / imgY
                else:
                    kwargs['height'] = imgY * kwargs['width'] / imgX

        canvas = attr.getManager(self, interfaces.ICanvasManager).canvas
        getattr(canvas, self.callable)(**kwargs)

        if show:
            width = kwargs.get('width', kwargs['image'].getSize()[0])
            height = kwargs.get('height', kwargs['image'].getSize()[1])
            canvas.rect(kwargs['x'], kwargs['y'], width, height)
示例#15
0
def draw_all_character_row(working_dir, canvas, character_infos, y,
                           guide):  #TODO: refactor
    nrof_row = (len(character_infos) // CHARACTERS_PER_ROW) + 1
    PINYIN_HEIGHT = 2 * RADICAL_PINYIN_HEIGHT
    ROW_HEIGHT = (SQUARE_SIZE + PINYIN_HEIGHT) * nrof_row
    repeat = 5 if nrof_row > 1 else 10
    for t in range(repeat):
        for index, character_info in enumerate(character_infos):
            i = index % CHARACTERS_PER_ROW
            j = index // CHARACTERS_PER_ROW
            x_ = GRID_OFFSET + i * SQUARE_SIZE
            y_ = y - j * (SQUARE_SIZE + PINYIN_HEIGHT)
            pinyin_y = y_ - PINYIN_HEIGHT

            canvas.rect(x_, y_ - PINYIN_HEIGHT, SQUARE_SIZE, PINYIN_HEIGHT)
            canvas.rect(x_, y_ - SQUARE_SIZE - PINYIN_HEIGHT, SQUARE_SIZE,
                        SQUARE_SIZE)
            draw_guide(canvas, x_,
                       y - (j + 1) * PINYIN_HEIGHT - j * SQUARE_SIZE, guide)
            prefill_character(working_dir, canvas, x_ + SQUARE_PADDING, y - \
                    SQUARE_PADDING - (j+1)*PINYIN_HEIGHT - \
                    j*SQUARE_SIZE, character_info.character + '0.png')

            canvas.setFont(FONT_NAME, FONT_SIZE)
            # pinyin_size = RADICAL_HEIGHT - 2 *RADICAL_PADDING
            pinyin = character_info.pinyin[0]
            pinyin_w = stringWidth(pinyin, FONT_NAME, FONT_SIZE)
            pinyin_h = FONT_SIZE * 0.8
            pinyin_x = x_ + (SQUARE_SIZE - pinyin_w) // 2
            pinyin_y = y_ - (pinyin_h + PINYIN_HEIGHT) // 2
            canvas.drawString(pinyin_x, pinyin_y, pinyin)

        # point y to next row
        y = y - ROW_HEIGHT
示例#16
0
def encabezado(canvas,nro,copia=False):
     from reportlab.lib.colors import white, darkblue,black
     x=740

     canvas.setFillColor(darkblue)
     canvas.rect(30,x,85,60,fill=True,stroke=False)

     canvas.setFillColor(white)
     canvas.setStrokeColor(white)
     canvas.setFont("Helvetica-Bold", 35)
     canvas.drawString(40, x+25, "MIS")

     canvas.setFillColor(white)
     canvas.setStrokeColor(white)
     canvas.setFont("Helvetica-Bold", 12)
     canvas.drawString(37,x+10, "PARAGUAY")

     canvas.setFillColor(black)
     canvas.setStrokeColor(black)
     canvas.setFont("Helvetica-Bold", 11)
     canvas.drawString(130, x+47, "MIS Implants Paraguay")
     canvas.drawString(130, x+31, "América 192 c/ Mcal. López")
     canvas.drawString(130, x+15, "Tel.: +59521 21 213193")
     canvas.drawString(130, x+2, "www.misimplants.com.py")

     canvas.setFont("Helvetica-Bold", 18)
     canvas.drawString(350, x+17, "Nro. "+str(nro))
示例#17
0
def draw_corner_boxes(survey, canvas, page):
    if 0:
        assert isinstance(canvas, reportlab.pdfgen.canvas.Canvas)

    width = defs.corner_box_width
    height = defs.corner_box_height
    padding = defs.corner_box_padding

    corner_boxes_positions = [
        (defs.corner_mark_left + padding, defs.corner_mark_top + padding),
        (survey.defs.paper_width - defs.corner_mark_right - padding - width,
         defs.corner_mark_top + padding),
        (defs.corner_mark_left + padding, survey.defs.paper_height -
         defs.corner_mark_bottom - padding - height),
        (survey.defs.paper_width - defs.corner_mark_right - padding - width,
         survey.defs.paper_height - defs.corner_mark_bottom - padding - height)
    ]

    for i in xrange(4):
        x, y = corner_boxes_positions[i]
        canvas.rect(x * mm,
                    y * mm,
                    width * mm,
                    height * mm,
                    fill=corners[page][i])
示例#18
0
    def show(self, canvas, showframe=None):
        if self._border_width > 0.0:
            canvas.saveState()
            canvas.setStrokeColor(self._border_color)
            canvas.setLineWidth(self._border_width)
            if self._border_fill_color.lower() != 'none':
                canvas.setFillColor(self._border_fill_color)
            canvas.rect(self.x,
                        self.y,
                        self.width,
                        self.height,
                        stroke=self._border_type,
                        fill=self._fill_border_rect)
            canvas.restoreState()

        if self.flowable is not None:
            self.flowable.width = self.width - (2.0 * self._padding[0])
            self.flowable.height = self.height - (2.0 * self._padding[1])
            self.flowable.drawOn(canvas, self.x + self._padding[0],
                                 self.y - self._padding[1])

            if showframe is not None:
                canvas.saveState()
                canvas.setLineWidth(showframe[0])
                canvas.rect(self.x,
                            self.y,
                            self.width,
                            self.height,
                            stroke=1,
                            fill=showframe[1])
                canvas.restoreState()

        return self
示例#19
0
 def drawBounds(self, canvas):
     """Guidelines to help me draw - not needed in production"""
     canvas.setStrokeColor(colors.red)
     canvas.rect(-100,-70,200,140)
     canvas.line(-100,0,100,0)
     canvas.line(0,70,0,-70)
     canvas.setStrokeColor(colors.black)
示例#20
0
    def process(self):
        kwargs = dict(self.getAttributeValues(attrMapping=self.attrMapping))
        preserve = kwargs.pop('preserveAspectRatio')
        show = kwargs.pop('showBoundary')

        if preserve:
            imgX, imgY = kwargs['image'].getSize()

            # Scale image correctly, if width and/or height were specified
            if 'width' in kwargs and 'height' not in kwargs:
                kwargs['height'] = imgY * kwargs['width'] / imgX
            elif 'height' in kwargs and 'width' not in kwargs:
                kwargs['width'] = imgX * kwargs['height'] / imgY
            elif 'width' in kwargs and 'height' in kwargs:
                if float(kwargs['width'])/kwargs['height'] > float(imgX)/imgY:
                    kwargs['width'] = imgX * kwargs['height'] / imgY
                else:
                    kwargs['height'] = imgY * kwargs['width'] / imgX

        canvas = attr.getManager(self, interfaces.ICanvasManager).canvas
        getattr(canvas, self.callable)(**kwargs)

        if show:
            width = kwargs.get('width', kwargs['image'].getSize()[0])
            height = kwargs.get('height', kwargs['image'].getSize()[1])
            canvas.rect(kwargs['x'], kwargs['y'], width, height)
示例#21
0
	def show(self, canvas, showframe=None):
		if self._border_width > 0.0:
			canvas.saveState()
			canvas.setStrokeColor(self._border_color)
			canvas.setLineWidth(self._border_width)
			if self._border_fill_color.lower() != 'none':
				canvas.setFillColor(self._border_fill_color)                        
			canvas.rect(self.x, 
						self.y, 
						self.width, 
						self.height, 
						stroke=self._border_type, 
						fill=self._fill_border_rect)
			canvas.restoreState()

		if self.flowable is not None:                  
			self.flowable.width = self.width-(2.0*self._padding[0])
			self.flowable.height = self.height-(2.0*self._padding[1])
			self.flowable.drawOn(canvas, self.x+self._padding[0], self.y-self._padding[1])

			if showframe is not None:
				canvas.saveState()
				canvas.setLineWidth(showframe[0])
				canvas.rect(self.x, self.y, self.width, self.height, stroke=1, fill=showframe[1])
				canvas.restoreState()

		return self
示例#22
0
    def _draw_back(self, canvas):
        # Draw red border
        self._draw_single_border(canvas, self.WIDTH, self.WIDTH, self.HEIGHT)

        # Parchment background
        self._draw_single_background(canvas, self.WIDTH, self.BORDER_BACK,
                                     self.WIDTH, self.HEIGHT)

        # Title
        canvas.setFillColor("black")
        title_font_height = self.fonts.set_font(canvas, "title")
        title_line_bottom = self.HEIGHT - self.BORDER_BACK[
            Border.TOP] - self.TITLE_BAR_HEIGHT
        title_bottom = title_line_bottom + (self.TITLE_BAR_HEIGHT -
                                            title_font_height) / 2
        canvas.drawCentredString(self.WIDTH + self.BASE_WIDTH / 2,
                                 title_bottom, self.title.upper())

        # Subtitle
        subtitle_line_bottom = title_line_bottom - self.STANDARD_BORDER
        canvas.setFillColor(self.BORDER_COLOR)
        canvas.rect(self.WIDTH,
                    subtitle_line_bottom,
                    self.BASE_WIDTH,
                    self.STANDARD_BORDER,
                    stroke=0,
                    fill=1)

        canvas.setFillColor("white")
        subtitle_font_height = self.fonts.set_font(canvas, "subtitle")
        subtitle_bottom = subtitle_line_bottom + (self.STANDARD_BORDER -
                                                  subtitle_font_height) / 2
        canvas.drawCentredString(self.WIDTH + self.BASE_WIDTH / 2,
                                 subtitle_bottom, self.subtitle)
示例#23
0
def header(canvas):
    """ draws the header part of the document for every page"""
    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')
示例#24
0
文件: mark.py 项目: GaretJax/pdfedit
    def render(self, canvas, context):
        canvas.rect(self.left_margin, self.bottom_margin,
                    self.box_width, self.box_height,
                    stroke=1, fill=1)

        data = [
            ('Last name:', context['student']['last_name']),
            ('Name:', context['student']['first_name']),
            ('Teacher:', '{} {}'.format(context['teacher']['last_name'],
                                        context['teacher']['first_name'])),
            ('ID:', context['student']['id']),
            ('School:', context['school']),
        ]

        t = Table(data, (30 * mm, self.box_width - 32 * mm),
                  [(self.box_height - 3 * mm) / len(data)] * len(data))
        s = TableStyle([
            ('FONTSIZE', (0, 0), (-1, -1), 8),
            ('LEFTPADDING', (0, 0), (0, -1), 13),
            ('BACKGROUND', (0, 0), (-1, -1), colors.white),
        ])
        t.setStyle(s)
        f = Frame(self.left_margin, self.bottom_margin,
                  self.box_width, self.box_height,
                  leftPadding=1 * mm, rightPadding=1 * mm,
                  topPadding=2.5 * mm, bottomPadding=0 * mm)
        f.addFromList([t], canvas)
示例#25
0
    def draw(self):
        canvas = self.canv
        unitWidth = self.style.unitWidth * self.style.unit

        v_origin = self.height - self.beatsHeight
        h_offset = self.chartMargin

        h_loc = 0
        v_loc = 0

        maxWidth = self.widthInBeats

        for u in range(maxWidth + 1):
            y = v_origin
            x = u * unitWidth + h_offset
            if u % self.timeSignature == 0:
                l = self.beatsHeight
            else:
                l = self.beatsHeight / 2
            canvas.line(x, y, x, y + l)
            if u == maxWidth:  # Avoid writing beat number after the final line
                break
            writeText(canvas,
                      self.style,
                      str((u % self.timeSignature) + 1),
                      self.style.beatsFontSize,
                      v_origin + self.beatsHeight,
                      self.width,
                      hpos=x + unitWidth / 2)

        parsedBlockList = self.wrapBlocks(self.blockList, maxWidth)

        for b in parsedBlockList:
            if h_loc == maxWidth:
                v_loc += 1
                h_loc = 0
            canvas.rect(h_offset + h_loc * unitWidth,
                        v_origin - ((v_loc + 1) * self.unitHeight),
                        b.length * unitWidth, self.unitHeight)
            if b.notes is not None:
                writeText(canvas,
                          self.style,
                          b.notes,
                          self.style.notesFontSize,
                          v_origin - ((v_loc + 1) * self.unitHeight) +
                          (1.3 * self.style.notesFontSize),
                          self.width,
                          hpos=h_offset + ((h_loc + b.length / 2) * unitWidth))
            v_offset = ((v_loc * self.unitHeight) +
                        self.unitHeight / 2) - self.style.chordNameFontSize / 2
            if b.chord is not None:
                writeText(canvas,
                          self.style,
                          b.chord.name,
                          self.style.chordNameFontSize,
                          v_origin - v_offset,
                          self.width,
                          hpos=h_offset + ((h_loc + b.length / 2) * unitWidth))
            h_loc += b.length
示例#26
0
 def draw_connector(self, canvas):
     txt = {'de': 'Anschluss: {0}', 'en': 'Connector: {0}'}
     txt = txt[self.lang].format(self.connector)
     canvas.drawString(self.center, self.y, txt)
     canvas.rect(
         self._rect_x(self.center), self._rect_y(self.y), self.rect_width,
         self.rect_height)
     self.y -= self.y_decrease
示例#27
0
 def draw_amount(self, canvas):
     txt = {'de': 'Stückzahl: {0}', 'en': 'Amount: {0}'}
     txt = txt[self.lang].format(self.amount)
     canvas.drawString(self.center, self.y, txt)
     canvas.rect(
         self._rect_x(self.center), self._rect_y(self.y), self.rect_width,
         self.rect_height)
     self.y -= self.y_decrease
示例#28
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)
示例#29
0
 def draw_cable(self, canvas):
     txt = {'de': 'Kabellänge: {0}', 'en': 'Cablelength: {0}'}
     txt = txt[self.lang].format(self.cable)
     canvas.drawString(self.center, self.y, txt)
     canvas.rect(
         self._rect_x(self.center), self._rect_y(self.y), self.rect_width,
         self.rect_height)
     self.y -= self.y_decrease
示例#30
0
 def draw_tubelength(self, canvas):
     txt = {'de': 'Rohrlänge: {0}cm', 'en': 'Tubelength: {0}cm'}
     txt = txt[self.lang].format(self.tube)
     canvas.drawString(self.center, self.y, txt)
     canvas.rect(
         self._rect_x(self.center), self._rect_y(self.y), self.rect_width,
         self.rect_height)
     self.y -= self.y_decrease
示例#31
0
 def draw_tubeoffset(self, canvas):
     txt = {'de': 'Rohrüberstand: {0}cm', 'en': 'Clearance: {0}cm'}
     txt = txt[self.lang].format(self.offset)
     canvas.drawString(self.center, self.y, txt)
     canvas.rect(
         self._rect_x(self.center), self._rect_y(self.y), self.rect_width,
         self.rect_height)
     self.y -= self.y_decrease
示例#32
0
 def draw(self, canvas):
     super().draw(canvas)
     canvas.setFillColor(self.BORDER_COLOR)
     canvas.rect(self.WIDTH * 1.5 - self.STANDARD_BORDER / 2,
                 0,
                 self.STANDARD_BORDER,
                 self.HEIGHT,
                 stroke=0,
                 fill=1)
示例#33
0
def draw_lines(canvas, nib_width, partitions, gap, nrulings, top_margin, pagesize):
    "Draws lines and separators on the page"
    line_height = sum((float(x) for x in partitions.split(",")),0.0) # Sum of the ascenders, descenders and body
    line_height += gap # Add the gap
    canvas.rect(1*mm, 1*mm, pagesize[0], top_margin * mm * nib_width, stroke = 0, fill = 1)
    for i in range(nrulings):
        position = (top_margin * mm * nib_width) + (i * line_height * nib_width * mm) # Margin + position for the current line
        offset = draw_line_set(canvas, position, nib_width, partitions, pagesize)
        canvas.rect(1*mm, offset, pagesize[0], gap * nib_width * mm, stroke = 0, fill = 1)
示例#34
0
 def _customer_rect(self, canvas, doc):
     canvas.saveState()
     top = 15.4 * cm
     left = self.margins['left']
     width = self.page_width - self.margins['left'] - self.margins['right']
     height = self.block_height
     canvas.setStrokeColor(red)
     canvas.setLineWidth(.5)
     canvas.rect(left, top, width, height, stroke=1)
     canvas.restoreState()
示例#35
0
 def pdf_head(canvas, headtext):
     canvas.setFont("Helvetica-Bold", 16)
     canvas.drawString(25, 8 * inch, headtext)
     canvas.setFillColor(colors.orange)
     canvas.rect(25,
                 7.8 * inch,
                 7.5 * inch,
                 0.12 * inch,
                 fill=1,
                 stroke=0)
示例#36
0
 def _provider_rect(self, canvas, doc):
     canvas.saveState()
     top = 19.7 * cm
     left = self.margins['left']
     width = self.block_width
     height = self.block_height
     canvas.setStrokeColor(red)
     canvas.setLineWidth(.5)
     canvas.rect(left, top, width, height, stroke=1)
     canvas.restoreState()
示例#37
0
文件: giro.py 项目: stalehd/members
    def drawBackground(self, canvas):
        underkant = 5.0/6.0 * inch
        # a4 format spec:
        # http://www.cl.cam.ac.uk/~mgk25/iso-paper.html
        # 210 x 297
        # faktura spek:
        # Norsk Standard Skjema F60-1
        # url: http://code.google.com/p/finfaktura/issues/detail?id=38
        canvas.saveState()
        canvas.setFillColor(yellow)

        # Yellow bits; skipping the receipt area.
        # Lag de gule feltene
        #canvas.rect(0*mm, 101*mm, 210*mm, 21*mm, stroke=0, fill=1)
        canvas.rect(0*mm, 33*mm, 210*mm, 9*mm, stroke=0, fill=1)
        canvas.rect(0*mm, 14*mm, 210*mm, 2*mm, stroke=0, fill=1)

        canvas.setFillColor(white)
        # Legg de hvite feltene oppå for "gjennomsiktighet"
        canvas.rect(80*mm, 103*mm, 36*mm, 9*mm, stroke=0, fill=1) # beløp
        canvas.rect(126*mm, 103*mm, 40*mm, 9*mm, stroke=0, fill=1) # betalerens kontonummer
        canvas.rect(170*mm, 103*mm, 31*mm, 9*mm, stroke=0, fill=1) # blankettnummer
        canvas.restoreState()

        # skillelinjer for KID
        canvas.lines([(9*mm, 16*mm, 9*mm, 30*mm), (80*mm, 16*mm, 80*mm, 30*mm)])
        # blankettnummer
        #canvas.setFont("Courier", 10)
        #blankettnr = "xxxxxxx"
        #canvas.drawString(173*mm, 105*mm, blankettnr)
        #canvas.drawString(173*mm, underkant, blankettnr)

        # Lag klammer for kontrollsiffer til sum.
        canvas.drawString(115*mm, underkant, "<")
        canvas.drawString(125*mm, underkant, ">")
        # Lag tekst som beskriver feltene.
        canvas.setFont("Helvetica-Bold", 6)
        canvas.drawString(15*mm, 98*mm, "Betalingsinformasjon")
        canvas.drawString(10*mm,30*mm,"Kundeidentifikasjon (KID)")
        canvas.drawString(82*mm,30*mm,"Kroner")
        canvas.drawString(107*mm,30*mm,"Øre")
        canvas.drawString(133*mm,30*mm,"Til konto")
        canvas.drawString(172*mm,30*mm,"Blankettnummer")
        canvas.drawString(150*mm,98*mm,"Betalings-")
        canvas.drawString(150*mm,95*mm,"frist")

        # Lag hjørneklammer rundt alle tekstfelt
        self.markField(canvas, 12*mm,64*mm, 86*mm, -21*mm, "Betalt av")
        self.markField(canvas, 110*mm,64*mm, 86*mm, -21*mm, "Betalt til")
        self.markField(canvas, 110*mm,89*mm, 86*mm, -19*mm, "Underskrift ved girering")
        self.markField(canvas, 166*mm,99*mm, 30*mm, -6*mm)    # Betalingsfrist.

        # Add the all-important "GIRO" text. It seems to do wonders for the recognition.
        canvas.setFont('Helvetica-Bold', 14)
        canvas.drawString(110*mm, 98*mm, "GIRO")
示例#38
0
def write_tile(values=None,
               conversion_cost=None,
               front_img=None,
               back_img=None,
               pos=None,
               canvas=None):
    styles = getSampleStyleSheet()
    styleN = styles['Normal']
    styleN.spaceBefore = 10
    styleN.spaceAfter = 10
    styleN.textColor = black
    styleH = styles['Heading1']
    styleH.textColor = black
    styleH.alignment = 1
    styleN.alignment = 1

    canvas.saveState()
    canvas.rect(spacer + pos[0] * 47 * mm,
                5 * mm + pos[1] * 94 * mm,
                47 * mm,
                94 * mm,
                fill=0,
                stroke=1)
    #canvas.drawImage(front_img, spacer + pos[0] * 47 * mm, 5 * mm + pos[1] * 94 * mm + 47 * mm, 47 * mm, 47 * mm)
    #if back_img is not None:
    #canvas.drawImage(back_img, spacer + pos[0] * 47 * mm, 5 * mm + pos[1] * 94 * mm, 47 * mm, 47 * mm)
    f = Frame(spacer + pos[0] * 47 * mm,
              pos[1] * 94 * mm - 5 * mm,
              47 * mm,
              47 * mm,
              showBoundary=0)
    if values is not None:
        table = Table(values,
                      style=[('TEXTCOLOR', (0, 0), (1, 2), black),
                             ('SIZE', (0, 0), (1, 2), 14)])
        f.addFromList([table], canvas)

    f = Frame(spacer + pos[0] * 47 * mm,
              pos[1] * 94 * mm + 35 * mm,
              47 * mm,
              47 * mm,
              showBoundary=0)
    if conversion_cost is not None:
        f.addFromList([Paragraph('%s' % conversion_cost, styleH)], canvas)

    canvas.restoreState()
    if pos == (2, 2):
        canvas.showPage()
        pos = (0, 0)
    else:
        if pos[1] == 2:
            pos = (pos[0] + 1, 0)
        else:
            pos = (pos[0], pos[1] + 1)
    return pos
示例#39
0
 def draw(self, canvas, split):
     super().draw(canvas, split)
     canvas.setFillColor(self.border_color)
     canvas.rect(
         self.width * 1.5 - self.STANDARD_BORDER / 2,
         0,
         self.STANDARD_BORDER,
         self.height,
         stroke=0,
         fill=1,
     )
示例#40
0
 def _add_registration_details(self, canvas):
     start_posn = self.start_posn
     reg_detail_dict = {t[0]: t[1] for t in REG_STATUS_OPTIONS}
     canvas.setFillColor(colors.blue)
     canvas.setFont('Helvetica', 10)
     canvas.drawString(0.5 * inch, start_posn,
                       'Section D: Registration Details')
     canvas.setLineWidth(1)
     canvas.setFillColor(colors.black)
     canvas.rect(0.5 * inch, start_posn - 1.3 * inch, PAGE_WIDTH - inch,
                 1.2 * inch)
     canvas.line(2.5 * inch, start_posn - 1.3 * inch, 2.5 * inch,
                 start_posn - 0.1 * inch)
     canvas.drawString(0.7 * inch, start_posn - 0.3 * inch,
                       'Registration Status:')
     canvas.drawString(2.7 * inch, start_posn - 0.3 * inch,
                       reg_detail_dict[self.details['registration_status']])
     canvas.line(0.5 * inch, start_posn - 0.4 * inch,
                 PAGE_WIDTH - 0.5 * inch, start_posn - 0.4 * inch)
     canvas.drawString(0.7 * inch, start_posn - 0.6 * inch,
                       'Pre-Tax Price:')
     try:
         price = float(self.details['pre_tax_price'])
         gst, hst, qst, inv_total = self._calculate_tax_total(price)
         price = '${:0,.2f}'.format(price)
     except ValueError:
         if self.details['pre_tax_price'] == '':
             price = gst = hst = qst = inv_total = '$0.00'
         else:
             price = 'ERROR: Price Entered Incorrectly'
             gst = hst = qst = inv_total = '?????'
     canvas.drawString(2.7 * inch, start_posn - 0.6 * inch, price)
     canvas.line(0.5 * inch, start_posn - 0.7 * inch,
                 PAGE_WIDTH - 0.5 * inch, start_posn - 0.7 * inch)
     canvas.drawString(0.7 * inch, start_posn - 0.9 * inch, 'Taxes:')
     tax_info = ''
     if self.event.gst_charged:
         tax_info += 'GST: ' + gst + ' / '
     if self.event.hst_charged:
         tax_info += 'HST: ' + hst + ' / '
     if self.event.qst_charged:
         tax_info += 'QST: ' + qst + ' / '
     if len(tax_info) > 0:
         tax_info = tax_info[:-3]
     else:
         tax_info = 'No tax charged'
     canvas.drawString(2.7 * inch, start_posn - 0.9 * inch, tax_info)
     canvas.line(0.5 * inch, start_posn - 1.0 * inch,
                 PAGE_WIDTH - 0.5 * inch, start_posn - 1.0 * inch)
     canvas.setFont('Helvetica-Bold', 10)
     canvas.drawString(0.7 * inch, start_posn - 1.2 * inch,
                       'Total Invoice:')
     canvas.drawString(2.7 * inch, start_posn - 1.2 * inch, inv_total)
     self.start_posn = start_posn - 1.55 * inch
 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)
示例#42
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)
示例#43
0
文件: generic.py 项目: jnm/sdaps
def draw_codebox(canvas, x, y, code):
    if 0:
        assert isinstance(canvas, reportlab.pdfgen.canvas.Canvas)
    size = defs.codebox_step * mm
    length = defs.codebox_length  # 2 Bytes
    canvas.saveState()
    canvas.translate(x, y)
    canvas.rect(0, 0, defs.codebox_width * mm, defs.codebox_height * mm)
    for i in range(length):
        if code & (1 << i):
            canvas.rect((length - i - 1) * size, 0, size, defs.codebox_height * mm, stroke=1, fill=1)
    canvas.restoreState()
示例#44
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)
示例#45
0
 def draw(self, canvas, x=0, y=0):
     for row, col in self._matrix:
         xr = (col + self.border) * self.box_size
         yr = (row + self.border) * self.box_size
         xr, yr = yr, -xr
         yr += self.size - self.box_size
         canvas.rect(xr + x,
                     yr + y,
                     self.box_size,
                     self.box_size,
                     stroke=0,
                     fill=1)
示例#46
0
文件: mark.py 项目: GaretJax/pdfedit
 def render(self, canvas, context):
     canvas.rect(self.left_margin, self.bottom_margin,
                 self.box_width, self.box_height,
                 stroke=0, fill=1)
     canvas.setFillColor(colors.black)
     canvas.drawString(
         self.left_margin + 2 * mm, self.bottom_margin + 2 * mm,
         'ID: {}'.format(context['student']['id']))
     canvas.drawRightString(
         self.left_margin + self.box_width - 2 * mm,
         self.bottom_margin + 2 * mm,
         '(Seite {})'.format(context['page_num']))
示例#47
0
 def _totals_rect(self, canvas, doc):
     canvas.saveState()
     top = 3.8 * cm
     left = self.page_width - self.margins['right'] - self.block_width
     width = self.block_width
     height = self.block_height - 1 * cm
     canvas.setStrokeColor(red)
     canvas.setLineWidth(.5)
     canvas.rect(left, top, width, height, stroke=1)
     canvas.setFillColor(red)
     canvas.rect(left, top, width - self.column_width * 2, height, fill=1)
     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))
示例#49
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()
示例#50
0
 def _add_registration_details(self, canvas):
     start_posn = self.start_posn
     reg_detail_dict = {t[0]:t[1] for t in REG_STATUS_OPTIONS}
     canvas.setFillColor(colors.blue)
     canvas.setFont('Helvetica', 10)
     canvas.drawString(0.5*inch, start_posn,
                       'Section D: Registration Details')
     canvas.setLineWidth(1)
     canvas.setFillColor(colors.black)
     canvas.rect(0.5*inch, start_posn-1.3*inch,
                 PAGE_WIDTH-inch, 1.2*inch)
     canvas.line(2.5*inch, start_posn-1.3*inch,
                 2.5*inch, start_posn-0.1*inch)
     canvas.drawString(0.7*inch, start_posn-0.3*inch,
                       'Registration Status:')
     canvas.drawString(2.7*inch, start_posn-0.3*inch,
                       reg_detail_dict[self.details['registration_status']])
     canvas.line(0.5*inch, start_posn-0.4*inch,
                 PAGE_WIDTH-0.5*inch, start_posn-0.4*inch)
     canvas.drawString(0.7*inch, start_posn-0.6*inch, 'Pre-Tax Price:')
     try:
         price = float(self.details['pre_tax_price'])
         gst, hst, qst, inv_total = self._calculate_tax_total(price)
         price = '${:0,.2f}'.format(price)
     except ValueError:
         if self.details['pre_tax_price'] == '':
             price = gst = hst = qst = inv_total = '$0.00'
         else:
             price = 'ERROR: Price Entered Incorrectly'
             gst = hst = qst = inv_total = '?????'
     canvas.drawString(2.7*inch, start_posn-0.6*inch, price)
     canvas.line(0.5*inch, start_posn-0.7*inch,
                 PAGE_WIDTH-0.5*inch, start_posn-0.7*inch)
     canvas.drawString(0.7*inch, start_posn-0.9*inch, 'Taxes:')
     tax_info = ''
     if self.event.gst_charged:
         tax_info += 'GST: ' + gst + ' / '
     if self.event.hst_charged:
         tax_info += 'HST: ' + hst + ' / '
     if self.event.qst_charged:
         tax_info += 'QST: ' + qst + ' / '
     if len(tax_info) > 0:
         tax_info = tax_info[:-3]
     else:
         tax_info = 'No tax charged'
     canvas.drawString(2.7*inch, start_posn-0.9*inch, tax_info)
     canvas.line(0.5*inch, start_posn-1.0*inch,
                 PAGE_WIDTH-0.5*inch, start_posn-1.0*inch)
     canvas.setFont('Helvetica-Bold', 10)
     canvas.drawString(0.7*inch, start_posn-1.2*inch, 'Total Invoice:')
     canvas.drawString(2.7*inch, start_posn-1.2*inch, inv_total)
     self.start_posn = start_posn - 1.55 * inch
示例#51
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()
示例#52
0
	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()
示例#53
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()
示例#54
0
    def draw_summary(self, canvas):
        txt = {'de': 'Ihre Messpunkte:', 'en': 'Your measuring points:'}
        canvas.drawString(self.center, self.y, txt[self.lang])
        self.y -= self.y_decrease

        for i in self.summary:
            text = "{0}. {1}cm".format(self.summary.index(i) + 1, i)
            canvas.drawString(self.center_indented, self.y, text)
            self.y -= self.y_decrease_small
        canvas.rect(
            self._rect_x(self.center),
            self._rect_y(self.y + self.y_decrease_small),
            self.rect_width,
            self.rect_height+(len(self.summary)*self.y_decrease_small)
            + self.y_decrease)
        self.y -= 10
示例#55
0
def draw_linear_width_markers(canvas, nw, pagesize):
    "Draws markers on the right and left indicating pen nib widths"
    for i in range(0, int(300/nw)):
        if i%2 == 0:
            canvas.rect(1*mm, i*nw*mm, 2*mm, nw*mm, stroke = 0, fill = 1)
            canvas.rect(pagesize[0]-4*mm, i*nw*mm, 2*mm, nw*mm, stroke = 0, fill = 1)
        else:
            canvas.rect(3*mm, i*nw*mm ,2*mm, nw*mm, stroke = 0, fill = 1)
            canvas.rect(pagesize[0]-2*mm, i*nw*mm, 2*mm, nw*mm, stroke = 0, fill = 1)
示例#56
0
 def draw_parts(self, canvas):
     txt = {'de': 'Verbaute Teile:', 'en': 'Installed parts:'}
     canvas.drawString(self.center, self.y, txt[self.lang])
     self.y -= self.y_decrease
     partsdict = {
         'probe': {'de': u'PICO-T3P', 'en': u'PICO-T3P'},
         'spacer10': {'de': u'Platzhalter 10cm', 'en': u'Spacer 10cm'},
         'spacer30': {'de': u'Platzhalter 30cm', 'en': u'Spacer 30cm'},
         'spacer80': {'de': u'Platzhalter 80cm', 'en': u'Spacer 80cm'}
     }
     for i in sorted(self.parts):
         text = '{0} x {1}'.format(self.parts[i], partsdict[i][self.lang])
         canvas.drawString(self.center_indented, self.y, text)
         self.y -= self.y_decrease
     canvas.rect(
         self._rect_x(self.center), self._rect_y(self.y + self.y_decrease),
         self.rect_width, self.rect_height*(len(self.parts)+1))
 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
     # 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)
示例#59
0
 def drawOn(self, canvas, x, y, _sW=0):
     "Tell it to draw itself on the canvas.  Do not override"
     if _sW and hasattr(self,'hAlign'):
         a = self.hAlign
         if a in ['CENTER','CENTRE']:
             x = x + 0.5*_sW
         elif a == 'RIGHT':
             x = x + _sW
         elif a != 'LEFT':
             raise ValueError, "Bad hAlign value "+str(a)
     canvas.saveState()
     canvas.translate(x, y)
     self._drawOn(canvas)
     if hasattr(self, '_showBoundary') and self._showBoundary:
         #diagnostic tool support
         canvas.setStrokeColor(gray)
         canvas.rect(0,0,self.width, self.height)
     canvas.restoreState()