Exemple #1
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
Exemple #2
0
def archive_watermark_page(archive_date):
    """Return PDF object with archiving watermark.

    Args:
        archive_date (datetime.datetime): Date of archiving.

    Returns:
        PyPDF2.pdf.PageObject: Page with just the archive watermark.
    """
    size = {"width": 20 * pagesizes.inch, "height": 18 * pagesizes.inch}
    font = {
        "name": "Helvetica",
        "size": 256,
        "color": colors.red.clone(alpha=0.20),
        "start_x": size["width"] * 0.50,
        "start_y": size["height"] * 0.45,
    }
    text_lines = ["ARCHIVED", archive_date.strftime("%Y-%m-%d")]
    packet = io.BytesIO()
    canvas = reportlab.pdfgen.canvas.Canvas(
        filename=packet, pagesize=(size["width"], size["height"]), bottomup=0
    )
    canvas.setFillColor(font["color"])
    canvas.setFont(psfontname=font["name"], size=font["size"])
    for i, line in enumerate(text_lines):
        canvas.drawCentredString(
            x=font["start_x"], y=(font["start_y"] + canvas._leading * i), text=line
        )
    canvas.save()
    packet.seek(0)
    watermark_page = PyPDF2.PdfFileReader(packet).getPage(0)
    return watermark_page
 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)
 def draw_half_star (self, inner_length=1*inch, outer_length=2*inch, points=5, origin=None):
     canvas = self.canv
     canvas.setLineWidth(0)
     if not origin: canvas.translate(self.size*0.5,self.size*0.5)
     else: canvas.translate(*origin)
     canvas.setFillColor(self.fillcolor)
     canvas.setStrokeColor(self.strokecolor)
     p = canvas.beginPath()
     inner = False # Start on top
     is_origin = True
     #print 'Drawing star with radius',outer_length,'(moving origin ',origin,')'
     for theta in range(0,360,360/(points*2)):
         if 0 < theta < 180: continue
         if inner: r = inner_length
         else: r = outer_length
         x = (math.sin(math.radians(theta)) * r)
         y = (math.cos(math.radians(theta)) * r)
         #print 'POINT:',x,y
         if is_origin:
             p.moveTo(x,y)
             is_origin = False
         else:
             p.lineTo(x,y)
         inner = not inner
     p.close()
     canvas.drawPath(p,fill=1)
Exemple #5
0
    def later_pages(canvas, document):
        canvas.saveState()
        #вывести внизу QR-code (ФИО, (номера направлений))
        qr_code = qr.QrCodeWidget(qr_value)
        qr_code.barWidth = 70
        qr_code.barHeight = 70
        qr_code.qrVersion = 1
        bounds = qr_code.getBounds()
        width = bounds[2] - bounds[0]
        height = bounds[3] - bounds[1]
        d = Drawing()
        d.add(qr_code)
        renderPDF.draw(d, canvas, 90 * mm, 7)
        #вывести атрибуты для подписей
        canvas.setFont('PTAstraSerifReg', 10)
        canvas.drawString(40 * mm, 10 * mm, '____________________________')
        canvas.drawString(115 * mm, 10 * mm,
                          '/{}/____________________________'.format(npf))

        canvas.setFont('Symbola', 18)
        canvas.drawString(195 * mm, 10 * mm, '\u2713')

        canvas.setFont('PTAstraSerifReg', 8)
        canvas.drawString(50 * mm, 7 * mm, '(подпись сотрудника)')
        canvas.drawString(160 * mm, 7 * mm, '(подпись плательщика)')

        canvas.rotate(90)
        canvas.setFillColor(HexColor(0x4f4b4b))
        canvas.setFont('PTAstraSerifReg', 5.2)
        canvas.drawString(10 * mm, -12 * mm, '{}'.format(6 * left_size_str))
        canvas.restoreState()
Exemple #6
0
def orf_eus(canvas, featL, coords, color_hex, shape):
    """Draw CDS and write count."""
    xs, xe, xn, y0, yt, yb, ynt, ynb = coords
    canvas.setLineWidth(1)
    # initialize path
    pORF = canvas.beginPath()
    if shape == 'square':
        pORF.moveTo(xs,ynt)
        pORF.lineTo(xe,ynt)
        pORF.lineTo(xe,ynb)
        pORF.lineTo(xs,ynb)
        pORF.lineTo(xs,ynt)
    # draw triangle-shaped ORFS
    elif featL <= minL:
        pORF.moveTo(xs,yt)
        pORF.lineTo(xe,y0)
        pORF.lineTo(xs,yb)
        pORF.lineTo(xs,yt)
    # draw arrow-shaped ORFS
    else:
        pORF.moveTo(xs,ynt)
        pORF.lineTo(xn,ynt)
        pORF.lineTo(xn,yt)
        pORF.lineTo(xe,y0)
        pORF.lineTo(xn,yb)
        pORF.lineTo(xn,ynb)
        pORF.lineTo(xs,ynb)
        pORF.lineTo(xs,ynt)
    # evaluate function category and set fill color
    canvas.setFillColor(color_hex)
    # finalize object path
    canvas.drawPath(pORF, stroke=1, fill=1)
    pORF.close()
    canvas.setFillColor(black)
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
Exemple #8
0
def title(canvas, doc):
    canvas.saveState()

    lemma_img = 'L:/resources/code/models/accuracy_assessment/report/images/'
    lemma_img += 'lemma_logo.gif'

    # Page background
    canvas.setStrokeColor(colors.black)
    canvas.setLineWidth(1)
    canvas.setFillColor('#e6ded5')
    canvas.roundRect(0.5 * u.inch,
                     0.5 * u.inch,
                     7.5 * u.inch,
                     10.0 * u.inch,
                     0.15 * u.inch,
                     stroke=1,
                     fill=1)

    # Page banner - image
    canvas.drawImage(lemma_img,
                     0.5 * u.inch,
                     7.5 * u.inch,
                     width=7.5 * u.inch,
                     height=3 * u.inch,
                     mask='auto')

    canvas.restoreState()
Exemple #9
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
Exemple #10
0
	def __applyCanvasOptions(self, canvas, opts):
		for opt in opts:
			if opt == 'fillColor':
				canvas.setFillColor(opts[opt])
			if opt == 'fontSize':
				canvas.setFontSize(opts[opt])
		return canvas
Exemple #11
0
 def draw_star(self,
               inner_length=1 * inch,
               outer_length=2 * inch,
               points=5,
               origin=None):
     canvas = self.canv
     canvas.setLineWidth(0)
     if not origin: canvas.translate(self.size * 0.5, self.size * 0.5)
     else: canvas.translate(*origin)
     canvas.setFillColor(self.fillcolor)
     canvas.setStrokeColor(self.strokecolor)
     p = canvas.beginPath()
     inner = False  # Start on top
     is_origin = True
     #print 'Drawing star with radius',outer_length,'(moving origin ',origin,')'
     for theta in range(0, 360, 360 / (points * 2)):
         if inner: r = inner_length
         else: r = outer_length
         x = (math.sin(math.radians(theta)) * r)
         y = (math.cos(math.radians(theta)) * r)
         #print 'POINT:',x,y
         if is_origin:
             p.moveTo(x, y)
             is_origin = False
         else:
             p.lineTo(x, y)
         inner = not inner
     p.close()
     canvas.drawPath(p, fill=1)
Exemple #12
0
 def get_canvas(self, packet):
     canvas = super(AnswerSheetMask, self).get_canvas(packet)
     canvas.setStrokeColor(colors.black)
     canvas.setFillColor(colors.white)
     canvas.setLineWidth(0.2 * mm)
     canvas.setFont('Helvetica', 8)
     return canvas
Exemple #13
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
Exemple #14
0
    def draw_text_bottom(canvas, text, fontsize=60):
        def get_center_x_coord(text, fontName, fontsize):
            strwidth = stringWidth(text, fontName, fontsize)
            x = (width - strwidth) / 2
            return x

        fontName = "Helvetica-Bold"
        maxWidth = 0.8 * width
        canvas.setFillColor(black)
        canvas.setStrokeColor(black)
        canvas.setFont(fontName, fontsize)
        lines = simpleSplit(text, fontName, fontsize, maxWidth)
        if (len(lines) > 1):
            draw_text_bottom(canvas, text, fontsize * 0.9)
        else:
            y = 170
            canvas.drawString(get_center_x_coord(text, fontName, fontsize), y,
                              text)
            # Smaller text
            fontName = "Helvetica"
            fontsize = 20
            canvas.setFont(fontName, fontsize)
            text = "Asp-lunch Tisdag Lv1"
            y = y - 30
            canvas.drawString(get_center_x_coord(text, fontName, fontsize), y,
                              text)
            text = "12:00 i FB"
            y = y - fontsize - 5
            canvas.drawString(get_center_x_coord(text, fontName, fontsize), y,
                              text)
            text = "Tas ned den 11/12"
            y = fontsize
            canvas.drawString(get_center_x_coord(text, fontName, fontsize), y,
                              text)
    def _draw_front(self, canvas):
        canvas.saveState()

        # Set card orientation
        if self.front_orientation == Orientation.TURN90:
            canvas.rotate(90)
            canvas.translate(0, -self.WIDTH)
            width = self.HEIGHT
            height = self.WIDTH
        else:
            width = self.WIDTH
            height = self.HEIGHT


        # Draw red border
        self._draw_single_border(canvas, 0, width, height)
        
        # Parchment background
        self._draw_single_background(canvas, 0, self.BORDER_FRONT, width, height)
        
        # D&D logo
        dnd_logo = svg2rlg("logo.svg")
        if dnd_logo is not None:
            factor = self.LOGO_WIDTH/dnd_logo.width
            dnd_logo.width *= factor
            dnd_logo.height *= factor
            dnd_logo.scale(factor, factor)
            logo_margin = (self.BORDER_FRONT[Border.TOP]-dnd_logo.height)/2
            renderPDF.draw(dnd_logo, canvas,
                           (width-self.LOGO_WIDTH)/2,
                           height - self.BORDER_FRONT[Border.TOP] + logo_margin,
                          )

        # Titles
        canvas.setFillColor("black")
        title_height = self.fonts.set_font(canvas, "title")
        canvas.drawCentredString(width * 0.5, self.FRONT_MARGINS[Border.BOTTOM], self.title.upper())

        # Artist
        if self.artist:
            canvas.setFillColor("white")
            artist_font_height = self.fonts.set_font(canvas, "artist")
            canvas.drawCentredString(width/2,
                            self.BORDER_FRONT[Border.BOTTOM] - artist_font_height - 1*mm,
                            "Artist: {}".format(self.artist))

        # Image
        image_bottom = self.FRONT_MARGINS[Border.BOTTOM] + title_height + 1*mm
        canvas.drawImage(self.front_image_path, 
                         self.FRONT_MARGINS[Border.LEFT], image_bottom, 
                         width=width \
                             - self.FRONT_MARGINS[Border.LEFT] \
                             - self.FRONT_MARGINS[Border.RIGHT],
                         height=height \
                             - image_bottom \
                             - self.FRONT_MARGINS[Border.TOP],
                         preserveAspectRatio=True, mask='auto')

        canvas.restoreState()
Exemple #16
0
 def drawShape(self, canvas, controls, color):
     """Utlity to draw a closed shape through a list of control points;
     extends the previous proc"""
     canvas.setFillColor(color)
     p = canvas.beginPath()
     self.curveThrough(p, controls)
     p.close()
     canvas.drawPath(p, stroke=1, fill=1)
Exemple #17
0
 def drawShape(self, canvas, controls, color):
     """Utlity to draw a closed shape through a list of control points;
     extends the previous proc"""
     canvas.setFillColor(color)
     p = canvas.beginPath()
     self.curveThrough(p, controls)
     p.close()
     canvas.drawPath(p, stroke=1, fill=1)
Exemple #18
0
def canvasBackground(canvas,colour):
    canvas.setFillColor(colour)
    path = canvas.beginPath()
    path.moveTo(0*cm,0*cm)
    path.lineTo(0*cm,30*cm)
    path.lineTo(25*cm,30*cm)
    path.lineTo(25*cm,0*cm)
    canvas.drawPath(path,True,True)  
Exemple #19
0
def drawPage(canvas, data, reverse=False):
    pageWidth, pageHeight = A4
    #canvas.drawString(100,pageHeight - 100,"Hello World")
    canvas.setFillColor(black)
    # rect (x,y, width,height, fill, stroke)
    print('Page width %s data length %s' % (pageWidth / cm, len(data)))
    print('Page height %s ' % (pageHeight / cm))
    leftX = 0.0
    rightX = 10.5
    Y = 1.45
    name = []
    guideWidth = 0.1
    for i in range(math.ceil(len(data) / 2)):
        # left
        if len(data) >= i * 2 + 2 or not reverse:
            if reverse:
                name = data[i * 2 + 1]
            else:
                name = data[i * 2]
            drawCard(canvas, leftX, Y, name)
        # right
        if len(data) >= i * 2 + 2 or reverse:
            if reverse:
                name = data[i * 2]
            else:
                name = data[i * 2 + 1]
            drawCard(canvas, rightX, Y, name)

        # draw cutting line
        canvas.setLineWidth(0.3)
        canvas.setDash(1, 2)
        canvas.line((0) * cm, Y * cm, (guideWidth) * cm, Y * cm)
        canvas.line((10.5 - guideWidth) * cm, Y * cm, (10.5 + guideWidth) * cm,
                    Y * cm)
        canvas.line(((pageWidth / cm) - guideWidth) * cm, Y * cm, pageWidth,
                    Y * cm)

        Y += 6.7  # Card height

    canvas.setLineWidth(0.3)
    canvas.setDash(1, 2)
    canvas.line((0) * cm, Y * cm, (guideWidth) * cm, Y * cm)
    canvas.line((10.5 - guideWidth) * cm, Y * cm, (10.5 + guideWidth) * cm,
                Y * cm)
    canvas.line(((pageWidth / cm) - guideWidth) * cm, Y * cm, pageWidth,
                Y * cm)

    canvas.setLineWidth(1)
    canvas.setDash(1)
    # draw vertical lines
    canvas.line((0) * cm, 0, (0) * cm, 1 * cm)
    canvas.line((0) * cm, pageHeight - (1 * cm), (0) * cm, pageHeight)

    canvas.line((10.5) * cm, 0, (10.5) * cm, 1 * cm)
    canvas.line((10.5) * cm, pageHeight - (1 * cm), (10.5) * cm, pageHeight)

    canvas.line((21) * cm, 0, (21) * cm, 1 * cm)
    canvas.line((21) * cm, pageHeight - (1 * cm), (21) * cm, pageHeight)
Exemple #20
0
def addText(canvas,element,styles):
	for run in element.getElementsByTagName("sn:r"):
		if(len(run.getElementsByTagName("sn:t")) > 0):
			##TODO: support italic, bold and underlined text
			charStyle = styles["Character" + run.getAttributeNode("sn:rStyle").value]
			text=run.getElementsByTagName("sn:t")[0].firstChild.nodeValue
			canvas.setFont("Helvetica",charStyle.size)
			canvas.setFillColor(charStyle.color)
			canvas.drawString(40,810-charStyle.size,text)
Exemple #21
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)
 def func(canvas, doc):
     width, height = letter
     margin = 0.66 * 72
     canvas.saveState()
     canvas.setFillColor("gray")
     canvas.drawString(margin, height - margin, "CONFIDENTIAL")
     canvas.drawRightString(width - margin, height - margin,
                            str(timezone.now()))
     canvas.restoreState()
Exemple #23
0
def addText(canvas,element,styles):
	for run in element.getElementsByTagName("sn:r"):
		if(len(run.getElementsByTagName("sn:t")) > 0):
			##TODO: support italic, bold and underlined text
			charStyle = styles["Character" + run.getAttributeNode("sn:rStyle").value]
			text=run.getElementsByTagName("sn:t")[0].firstChild.nodeValue
			canvas.setFont("Helvetica",charStyle.size)
			canvas.setFillColor(charStyle.color)
			canvas.drawString(40,810-charStyle.size,text)
Exemple #24
0
def piePagina(canvas, doc):
	canvas.saveState()
	canvas.setFillColor('#666666')
	canvas.setFont('Helvetica', 8)
	canvas.setStrokeColor('#ABAAAB')
	canvas.line(A4[0] - 800, A4[1] - 818, A4[0] - 0, A4[1] - 818)
	canvas.drawString(275, A4[1] - 835, "Pag. %d" % doc.page)
	# canvas.drawString( 20,  A4[1]-835, 'Codigo: '+form['data']['header']['code'])
	canvas.restoreState()
Exemple #25
0
def detailsBackground(canvas,colour):
    canvas.setFillColor(colour)
    path = canvas.beginPath()
    path.moveTo(0.7*cm,16.5*cm)
    path.lineTo(0.7*cm,24*cm)
    path.lineTo(20*cm,24*cm)
    path.lineTo(20*cm,16.5*cm)
    path.lineTo(0.7*cm,16.5*cm)
    canvas.drawPath(path,True,True)     
 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)
Exemple #27
0
 def draw_circle(self, x, y, r):
     # Test...
     canvas = self.canv
     canvas.setLineWidth(0)
     canvas.setStrokeColor(colors.grey)
     canvas.setFillColor(colors.grey)
     p = canvas.beginPath()
     p.circle(x, y, r)
     p.close()
     canvas.drawPath(p, fill=1)
Exemple #28
0
 def draw_circle (self, x, y, r):
     # Test...
     canvas = self.canv
     canvas.setLineWidth(0)        
     canvas.setStrokeColor(colors.grey)
     canvas.setFillColor(colors.grey)        
     p = canvas.beginPath()
     p.circle(x,y,r)
     p.close()
     canvas.drawPath(p,fill=1)
Exemple #29
0
    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")
    def _draw_front(self, canvas):
        canvas.saveState()

        # Draw red border
        self._draw_single_border(canvas, 0, self.width, self.height)

        # Parchment background
        self._draw_single_background(
            canvas,
            0,
            self.border_front,
            self.width,
            self.height,
            self.front_orientation,
        )

        # Set card orientation
        if self.front_orientation == Orientation.TURN90:
            canvas.rotate(90)
            canvas.translate(0, -self.width)
            width = self.height
            height = self.width
        else:
            width = self.width
            height = self.height

        # D&D logo
        dnd_logo = svg2rlg(ASSET_DIR / "logo.svg")
        if dnd_logo is not None:
            factor = self.LOGO_WIDTH / dnd_logo.width
            dnd_logo.width *= factor
            dnd_logo.height *= factor
            dnd_logo.scale(factor, factor)
            logo_margin = (self.border_front[Border.TOP] - self.bleed -
                           dnd_logo.height) / 2
            renderPDF.draw(
                dnd_logo,
                canvas,
                (width - self.LOGO_WIDTH) / 2,
                height - self.border_front[Border.TOP] + logo_margin,
            )

        self._draw_front_frame(canvas, width, height)

        # Artist
        if self.artist:
            canvas.setFillColor("white")
            artist_font_height = self.fonts.set_font(canvas, "artist")
            canvas.drawCentredString(
                width / 2,
                self.border_front[Border.BOTTOM] - artist_font_height - 1 * mm,
                "Artist: {}".format(self.artist),
            )

        canvas.restoreState()
Exemple #31
0
 def render(self, canvas):
     if len(self.words) == 1:
         canvas.setFillColor(self.words[0]['color'])
         canvas.drawString(self.coords[0], self.coords[1], self.words[0]['txt'])
     elif len(self.words)>1:
         txt = canvas.beginText()
         txt.setTextOrigin(self.coords[0], self.coords[1])
         for elt in self.words:
             txt.setFillColor(elt['color'])
             txt.textOut(elt['txt'])
         canvas.drawText(txt)
 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,
     )
Exemple #33
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 func(canvas, doc):
     width, height = letter
     margin = 0.66 * 72
     canvas.saveState()
     canvas.setFillColor('gray')
     #canvas.setFont('OpenSans',12)
     canvas.drawString(margin, height - margin, "CONFIDENTIAL")
     canvas.drawRightString(width - margin, height - margin, localtime(timezone.now()).strftime(date_format))
     if recipient:
         canvas.drawString(margin, margin, "Intended for: Title IX Coordinator %s" % recipient)
     canvas.restoreState()
Exemple #35
0
def encabezado(canvas, doc):
	canvas.saveState()
	#canvas.drawImage(app_home + 'logo1.png', 15, 800, width=140, height=29, mask='auto')
	# canvas.drawImage(current_app.config["APP_PATH"] + '/src/etc/img/' + 'logo2.png', 430, 800, width=140, height=25, mask='auto')
	canvas.setStrokeColor('#ABAAAB')
	canvas.line(A4[0] - 700, A4[1] - 53, A4[0] - 0, A4[1] - 53)
	canvas.setFillColor('#666666')
	canvas.setFont('Helvetica', 20) 
	# canvas.drawString(10, A4[1] - 77, form['data']['header']['name'])
	canvas.line(A4[0] - 700, A4[1] - 90, A4[0] - 0, A4[1] - 90)
	canvas.restoreState()
Exemple #36
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()
Exemple #37
0
def labeller(cName, cLen, canvas, Y_map) :
    """Label baselines with genome/contig name and size."""
    canvas.setFillColor(black)
    y0 = Y_map
    x0 = -pNsize                # retreat into the left margin to write out name and size
    y1 = y0 + ck_vsp/10         # bump name up a bit from BL level
    y2 = y0 - ck_vsp            # bump size down a bit from BL level
    pLenStr = str(float(cLen)/1000) # converts number to suitable form
    canvas.setFont(bFont,LfSize)
    canvas.drawString(x0,y1,cName)
    canvas.setFont(rFont,NfSize)
    canvas.drawString(x0,y2,pLenStr+' kb')
Exemple #38
0
 def render(self, canvas):
     if len(self.words) == 1:
         canvas.setFillColor(self.words[0]['color'])
         canvas.drawString(self.coords[0], self.coords[1],
                           self.words[0]['txt'])
     elif len(self.words) > 1:
         txt = canvas.beginText()
         txt.setTextOrigin(self.coords[0], self.coords[1])
         for elt in self.words:
             txt.setFillColor(elt['color'])
             txt.textOut(elt['txt'])
         canvas.drawText(txt)
Exemple #39
0
    def first_pages(canvas, document):
        canvas.saveState()
        canvas.setFont("PTAstraSerifReg", 9)
        # вывести интерактивную форму "текст"
        form = canvas.acroForm
        # canvas.drawString(25, 780, '')
        form.textfield(name='comment',
                       tooltip='comment',
                       fontName='Times-Roman',
                       fontSize=10,
                       x=57,
                       y=750,
                       borderStyle='underlined',
                       borderColor=black,
                       fillColor=white,
                       width=515,
                       height=13,
                       textColor=black,
                       forceBorder=False)

        # Вывести на первой странице код-номер договора
        barcode128.drawOn(canvas, 120 * mm, 283 * mm)

        #вывести внизу QR-code (ФИО, (номера направлений))
        qr_code = qr.QrCodeWidget(qr_value)
        qr_code.barWidth = 70
        qr_code.barHeight = 70
        qr_code.qrVersion = 1
        bounds = qr_code.getBounds()
        width = bounds[2] - bounds[0]
        height = bounds[3] - bounds[1]
        d = Drawing()
        d.add(qr_code)
        renderPDF.draw(d, canvas, 90 * mm, 7)
        #вывести атрибуты для подписей
        canvas.setFont('PTAstraSerifReg', 10)
        canvas.drawString(40 * mm, 10 * mm, '____________________________')
        canvas.drawString(115 * mm, 10 * mm,
                          '/{}/____________________________'.format(npf))
        canvas.setFont('Symbola', 18)
        canvas.drawString(195 * mm, 10 * mm, '\u2713')

        canvas.setFont('PTAstraSerifReg', 8)
        canvas.drawString(50 * mm, 7 * mm, '(подпись сотрудника)')
        canvas.drawString(160 * mm, 7 * mm, '(подпись плательщика)')

        #вывестии защитны вертикальный мелкий текст
        canvas.rotate(90)
        canvas.setFillColor(HexColor(0x4f4b4b))
        canvas.setFont('PTAstraSerifReg', 5.2)
        canvas.drawString(10 * mm, -12 * mm, '{}'.format(6 * left_size_str))

        canvas.restoreState()
Exemple #40
0
 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']))
Exemple #41
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
Exemple #42
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()
 def func(canvas, doc):
     width, height = letter
     margin = 0.66 * 72
     canvas.saveState()
     canvas.setFillColor('gray')
     canvas.drawString(margin, height - margin, "CONFIDENTIAL")
     canvas.drawRightString(
         width - margin, height - margin, str(timezone.now()))
     canvas.drawString(
         margin, margin,
         f"Intended for: Title IX Coordinator {recipient}",
     )
     canvas.restoreState()
def drawCode(canvas, code):
    """Draws a block of text at current point, indented and in Courier"""
    canvas.addLiteral("36 0 Td")
    canvas.setFillColor(colors.blue)
    canvas.setFont("Courier", 10)

    t = canvas.beginText()
    t.textLines(code)
    c.drawText(t)

    canvas.setFillColor(colors.black)
    canvas.addLiteral("-36 0 Td")
    canvas.setFont("Times-Roman", 10)
Exemple #45
0
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
Exemple #46
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))
Exemple #47
0
def textsize(canvas):
    from reportlab.lib.units import inch
    from reportlab.lib.colors import magenta, red
    canvas.setFont("Times-Roman", 20)
    canvas.setFillColor(red)
    canvas.drawCentredString(2.75*inch, 2.5*inch, "Font size examples")
    canvas.setFillColor(magenta)
    size = 7
    y = 2.3*inch
    x = 1.3*inch
    for line in lyrics:
        canvas.setFont("Helvetica", size)
        canvas.drawRightString(x,y,"%s points: " % size)
        canvas.drawString(x,y, line)
        y = y-size*1.2
        size = size+1.5
Exemple #48
0
def seq_scale(canvas, scX, scY, incrT, incrN, dip, dop) :
    """Draws the sequence scale bar."""
    canvas.setLineWidth(1.2)
    canvas.setFillColor(black)
    incrCNT = 0							    # initialize count of increments
    psc = canvas.beginPath()
    psc.moveTo(scX, scY+dip-dop)		        # start at beginning (duh!)
    psc.lineTo(scX+incrT*incrN, scY+dip-dop)	# draw the scale baseline
    # draw ticks until the max number of increments is reached
    while incrCNT <= incrN :
        psc.moveTo(scX+incrT*incrCNT, scY+dip-dop)
        psc.lineTo(scX+incrT*incrCNT, scY+dip)
        incrCNT += 1
    canvas.drawPath(psc, stroke=1, fill=0)
    psc.close()
    # write out scale extremities values (needs hand-fix if not using kbs)
    canvas.setFont(rFont,NfSize)
    canvas.drawRightString(scX, scY+dip+dop, '0')
    canvas.drawString(scX+incrT*incrN, scY+dip+dop, str(incrN)+' kb')
Exemple #49
0
 def _add_notes(self, canvas):
     """
     This is designed to be the last element on the page.
     Don't move it or stuff will break
     """
     start_posn = self.start_posn
     start_posn = self.start_posn
     canvas.setFillColor(colors.blue)
     canvas.setFont('Helvetica', 10)
     canvas.drawString(0.5*inch, start_posn,
                       'Section E - Registration Notes')
     canvas.setFillColor(colors.black)
     canvas.rect(0.5*inch, 0.75*inch,
                 PAGE_WIDTH-inch, start_posn-0.85*inch)
     style_sheet = getSampleStyleSheet()
     style = style_sheet['BodyText']
     para = Paragraph(self.details['registration_notes'], style)
     h=para.wrap(7.1 * inch, start_posn-0.65*inch)[1]
     para.drawOn(canvas, 0.7 * inch, start_posn-h-0.2*inch)
 def pdf_format(canvas, count):
     """to write details in pdf file format"""
     canvas.setFont("Helvetica", 14)
     canvas.setLineWidth(0.3)
     canvas.drawString(20, 750, "Aliens details:")
     canvas.drawString(20, 720, "CodeName | BloodColor |" "Number.of antenas |Number.of legs| HomePlanet:")
     canvas.setFillColor(black)
     y = 650
     for i in range(count):  # iterate over the number of records
         x = 0  # vertical tab
         alien_list = []
         alien_data = Alien()
         alien_data.read_input()
         alien_list = alien_data.save_records_pdf()
         for item in alien_list:
             x = x + 70  # moving next word
             canvas.setFont("Helvetica", 13)
             canvas.drawString(x, y, item)
         y = y - 30  # formating the next record horizontal tab space
Exemple #51
0
	def render(self, pagemgr):
		rendered = []
		frame = None
		canvas = None
		if pagemgr is not None:
			frame = pagemgr.getcurrentframe()
			canvas = pagemgr.getcanvas()                

		rect = self._baseelement.getrect()
		canvas_height = canvas._pagesize[1]

		# We're looking for the object we're supposed to be positionned
		# relative to, hopefully it exists and has been rendered already!
		anchor_id, anchor_data = self._baseelement.getanchor()
		rendered_anchor = findinstance(anchor_id)                
		if rendered_anchor is not None:
			dest_rect = rendered_anchor.getrect()   
			dest_rect[1] = canvas_height - (dest_rect[1]+dest_rect[3])                        
			rect = snapsrctodest(rect, 
						         dest_rect, 
						         rlobject.snapto_dict[anchor_data[1].upper()],
						         rlobject.snapto_dict[anchor_data[2].upper()], 
						         [0,0])

		rect[1] = canvas_height - (rect[1]+rect[3])
		basestyle = self._baseelement.getstyle()
		bckg_color = basestyle.getattribute('background-color',str)
		border = basestyle.getattribute('border',float)
		color = basestyle.getattribute('color',str)
		canvas.saveState()
		canvas.setStrokeColor(color)
		canvas.setLineWidth(border)
		dofill = 0
		if bckg_color.lower() != 'none':
			canvas.setFillColor(bckg_color)
			dofill = 1
		canvas.rect(rect[0], rect[1], rect[2], rect[3], stroke=1, fill=dofill)
		canvas.restoreState()
		register(self._baseelement.getid(), RLFrame(rect[0], rect[1], rect[2], rect[3]))                
def capa(canvas, doc):
    cabecalho = Image('static/topFrame.png', 535, 63)
    w, h = cabecalho.wrap(doc.width, doc.topMargin)
    cabecalho.drawOn(canvas, doc.leftMargin + 5, doc.height + doc.topMargin - 40)

    canvas.setFont('Helvetica', 14)
    canvas.setFillColor(HexColor('#3366cc'))
    canvas.drawRightString(560, 220, doc_config['laudo'])
    canvas.setFont('Helvetica', 10)
    canvas.setFillColor(HexColor('#6a6a6a'))
    canvas.drawRightString(560, 180, doc_config['nome'])
    canvas.setFillColor(HexColor('#6a6a6a'))
    canvas.drawRightString(560, 160, doc_config['empresa'])
    canvas.setFillColor(HexColor('#6a6a6a'))
    canvas.drawRightString(560, 140, doc_config['cargo'])
Exemple #53
0
 def _add_assistant_details(self, canvas):
     start_posn = self.start_posn
     canvas.setFillColor(colors.blue)
     canvas.setFont('Helvetica', 10)
     canvas.drawString(0.5*inch, start_posn, 'Assistant Details')
     canvas.setFillColor(colors.black)
     canvas.rect(0.5*inch, start_posn-0.9*inch,
                 PAGE_WIDTH-inch, 0.8*inch)
     canvas.line(2.5*inch, start_posn-0.9*inch,
                 2.5*inch, start_posn-0.1*inch)
     canvas.drawString(0.7*inch, start_posn-0.3*inch, 'Assistant:')
     assistant_deets = ''
     new_line = False
     if self.details['assistant_salutation'].strip() != '':
         new_line = True
         assistant_deets += self.details['assistant_salutation'].strip() + ' '
     if self.details['assistant_first_name'].strip() != '':
         new_line = True
         assistant_deets += self.details['assistant_first_name'].strip() + ' '
     if self.details['assistant_last_name'].strip() != '':
         new_line = True
         assistant_deets += self.details['assistant_last_name'].strip() + ' '
     if new_line:
         assistant_deets += '<br/>'
     if self.details['assistant_title'].strip() != '':
         assistant_deets += self.details['assistant_title'].strip()
         assistant_deets += '<br/>'
     if self.details['assistant_email'].strip() != '':
         assistant_deets += 'Email: '
         assistant_deets += self.details['assistant_email'] + '<br/>'
     if self.details['assistant_phone'].strip() != '':
         assistant_deets += 'Phone: ' + self.details['assistant_phone']
     style_sheet = getSampleStyleSheet()
     style = style_sheet['BodyText']
     para = Paragraph(assistant_deets, style)
     h = para.wrap(4.7*inch, 0.8*inch)[1]
     para.drawOn(canvas, 2.7*inch, start_posn-h-0.15*inch)
     self.start_posn = start_posn-1.1*inch
Exemple #54
0
 def _add_event_options(self, canvas):
     start_posn = self.start_posn
     num_options = len(self.details['event_options'])
     canvas.setFont('Helvetica', 10)
     canvas.setLineWidth(1)
     canvas.setFillColor(colors.blue)
     canvas.drawString(0.5*inch, start_posn,
                       'Conference Options Selected')
     canvas.setFillColor(colors.black)
     canvas.rect(0.5*inch, start_posn-(0.1+num_options*0.3)*inch,
                 PAGE_WIDTH-inch, num_options*0.3*inch)
     option_start = start_posn - 0.3 * inch
     for option in self.details['event_options']:
         event_option = EventOptions.objects.get(pk=option)
         option_text = event_option.name + ':  '
         option_text += event_option.startdate.strftime('%-d %B, %Y')
         if event_option.enddate != event_option.startdate:
             option_text += ' to '
             option_text += event_option.enddate.strftime('%-d %B, %Y')
         canvas.drawString(0.7 * inch, option_start, option_text)
         canvas.line(0.5*inch, option_start-(0.1*inch),
                     PAGE_WIDTH-0.5*inch, option_start-(0.1*inch))
         option_start -= 0.3 * inch
     self.start_posn = option_start - 0.05 * inch
Exemple #55
0
 def _add_delegate_information(self, canvas):
     start_posn = self.start_posn
     canvas.setFillColor(colors.blue)
     canvas.setFont('Helvetica', 10)
     canvas.drawString(0.5*inch, start_posn,
                       'Section B - Delegate Information')
     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, 'Delegate Name:')
     name = ''
     if self.details['salutation'].strip() != '':
         name += self.details['salutation'].strip() + ' '
     if self.details['first_name'].strip != '':
         name += self.details['first_name'].strip() + ' '
     name += self.details['last_name'].strip()
     canvas.drawString(2.7 * inch, start_posn-0.3*inch, name)
     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, 'Delegate Title:')
     canvas.drawString(2.7*inch, start_posn-0.6*inch,
                       self.details['title'].strip())
     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, 'Email:')
     canvas.drawString(2.7*inch, start_posn-0.9*inch,
                       self.details['email1'].strip())
     canvas.line(0.5*inch, start_posn-1.0*inch,
                 PAGE_WIDTH-0.5*inch, start_posn-1.0*inch)
     canvas.drawString(0.7*inch, start_posn-1.2*inch, 'Phone:')
     canvas.drawString(2.7*inch, start_posn-1.2*inch,
                       self.details['phone1'].strip())
     self.start_posn = start_posn-1.55*inch
Exemple #56
0
 def _add_company_information(self, canvas):
     start_posn = self.start_posn
     canvas.setFillColor(colors.blue)
     canvas.setFont('Helvetica', 10)
     canvas.drawString(0.5*inch, start_posn,
                       'Section C: Company Information')
     canvas.setFillColor(colors.black)
     canvas.rect(0.5*inch, start_posn-1.2*inch,
                 PAGE_WIDTH-inch, 1.1*inch)
     canvas.line(2.5*inch, start_posn-1.2*inch,
                 2.5*inch, start_posn-0.1*inch)
     canvas.drawString(0.7*inch, start_posn-0.3*inch, 'Company Name:')
     canvas.drawString(2.7*inch, start_posn-0.3*inch,
                       self.details['name'].strip())
     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, 'Mailing Address:')
     address = ''
     if self.details['address1'].strip() != '':
         address += self.details['address1'].strip() + '<br/>'
     if self.details['address2'].strip() != '':
         address += self.details['address2'].strip() + '<br/>'
     if self.details['city'].strip() != '' or \
             self.details['state_prov'].strip() != '':
         if self.details['city'].strip() != '':
             address += self.details['city'].strip() + ', '
         address += self.details['state_prov'].strip() + '<br/>'
     if self.details['postal_code'].strip() != '':
         address += self.details['postal_code'].strip() + '  '
     address += self.details['country'].strip()
     style_sheet = getSampleStyleSheet()
     style = style_sheet['BodyText']
     para = Paragraph(address, style)
     h = para.wrap(4.7 * inch, 0.9* inch)[1]
     para.drawOn(canvas, 2.7 * inch, start_posn-h-0.45*inch)
     self.start_posn = start_posn-1.45*inch