Example #1
0
def spacer_ticker(canvas, feature, cLen, Y0, nudge, offset, side):
    """Draw separator indicators."""
    # take start and end points
    location = feature.location
    Zs = location.nofuzzy_start
    Ze = location.nofuzzy_end
    # calculate loop offset coordinates
    loop_offZs = offset_coord(Zs, cLen, offset)
    loop_offZe = offset_coord(Ze, cLen, offset)
    # calculate nudge offset coordinates
    offZs = nudge_coord(loop_offZs, nudge)
    offZe = nudge_coord(loop_offZe, nudge)
    xs, xe = offZs*u, offZe*u
    # set Y axis coordinates
    y0 = Y0-dop*3.5
    if side == 'low':
        yT1 = y0-h*4
    else:
        yT1 = y0+h*4
    # draw
    canvas.setLineWidth(2)
    ttl = canvas.beginPath()
    ttl.moveTo(xs,y0)
    ttl.lineTo(xs,yT1)
    ttl.lineTo(xe,yT1)
    ttl.lineTo(xe,y0)
    canvas.drawPath(ttl, stroke=1, fill=0)
    ttl.close()
Example #2
0
 def draw(self, pmlOp, pageNr, canvas, pe):
     canvas.setLineWidth(pe.mm2points(pmlOp.width))
     path = canvas.beginPath()
     path.arc( pe.x(pmlOp.x - pmlOp.radius), pe.y(pmlOp.y - pmlOp.radius),
            pe.x(pmlOp.x + pmlOp.radius), pe.y(pmlOp.y + pmlOp.radius),
            startAng=pmlOp.startAngle, extent=90)
     canvas.drawPath(path)
Example #3
0
    def write_pdf(self, canvas):
        canvas.setFont("Helvetica", 70)
        if self.show_title:
            canvas.drawString(70, 70, self.title)

        canvas.setFont("Helvetica", SUDOKU_FONT_SIZE)
        sudoku_offset = SUDOKU_PDF_OFFSET
        xlist = [sudoku_offset[0] + j *
                 (2 * SUDOKU_XPAD + SUDOKU_FONT_SIZE) for j in range(0, 9 + 1)]
        ylist = [sudoku_offset[1] + j *
                 (2 * SUDOKU_YPAD + SUDOKU_FONT_SIZE) for j in range(0, 9 + 1)]
        canvas.grid(xlist, ylist)
        for x in range(0, 9):
            for y in range(0, 9):
                if self.sudoku.mat[y][x] != UNKNOWN:
                    canvas.drawString(
                        sudoku_offset[0] +
                        (SUDOKU_FONT_SIZE + SUDOKU_XPAD) // 2 +
                        x * (2 * SUDOKU_XPAD + SUDOKU_FONT_SIZE) - 4,
                        sudoku_offset[1] + SUDOKU_FONT_SIZE +
                        y * (2 * SUDOKU_YPAD + SUDOKU_FONT_SIZE),
                        str(self.sudoku.mat[y][x])
                    )

        if self.show_page_number:
            canvas.setFont("Helvetica", 10)
            canvas.drawString(280, 800, str(self.page_number))

        # draw a cell
        canvas.setLineWidth(3)
        canvas.grid(xlist[::3], ylist[::3])
Example #4
0
def ref_ticker(canvas, feature, cLen, Y0, nudge, offset):
    """Draw contig separators."""
    # get contig name
    name = feature.qualifiers.get('id')[0]
    # take start and end points
    location = feature.location
    Zs = location.nofuzzy_start
    Ze = location.nofuzzy_end
    # calculate loop offset coordinates
    loop_offZs = offset_coord(Zs, cLen, offset)
    loop_offZe = offset_coord(Ze, cLen, offset)
    # calculate nudge offset coordinates
    offZs = nudge_coord(loop_offZs, nudge)
    offZe = nudge_coord(loop_offZe, nudge)
    xs, xe = offZs*u, offZe*u
    xmid = (xe+xs)/2
    # set Y axis coordinates
    y0 = Y0+dop*3
    # draw
    canvas.setLineWidth(2)
    ttl = canvas.beginPath()
    ttl.moveTo(xs,y0+w)
    ttl.lineTo(xs,y0+w+h*2)
    ttl.lineTo(xe,y0+w+h*2)
    ttl.lineTo(xe,y0+w)
    canvas.drawPath(ttl, stroke=1, fill=0)
    canvas.setFont(bFont, NfSize)
    canvas.drawCentredString(xmid, y0+h*5, name)
    canvas.setFont(rFont, NfSize)
    ttl.close()
Example #5
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)
Example #6
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
Example #7
0
    def __init__(self, pt_ID, amount):
	self.amount = amount
	self.pt_ID = pt_ID
	from reportlab.lib.pagesizes import letter
	from reportlab.pdfgen import canvas
	
	canvas = canvas.Canvas("/home/mb/Desktop/GECKO/EMR_outputs/%s/Other/rcpt-%s.pdf" % \
						(self.pt_ID, EMR_utilities.dateToday()), pagesize=letter)
	canvas.setLineWidth(.3)
	canvas.setFont('Helvetica', 12)
 
	canvas.drawString(30,750,'PAYMENT FOR MEDICAL SERVICES FOR %s' % self.name_find())
	canvas.drawString(30,735,'RENDERED AT BARRON FAMILY MEDICINE')
	canvas.drawString(500,750,"%s" % EMR_utilities.dateToday())
	canvas.line(480,747,580,747)
 
	canvas.drawString(275,725,'AMOUNT PAID:')
	canvas.drawString(500,725,"$%s" % self.amount)
	canvas.line(378,723,580,723)
 
	canvas.drawString(30,703,'RECEIVED BY:')
	canvas.line(120,700,580,700)
	canvas.drawString(120,703,"MICHAEL BARRON MD")
 
	canvas.save()
Example #8
0
    def __init__(self, pt_ID, amount):
	self.amount = amount
	self.pt_ID = pt_ID
	from reportlab.lib.pagesizes import letter
	from reportlab.pdfgen import canvas
	
	lt = "%s/EMR_outputs/%s/Other/rcpt-%s.pdf" % (settings.LINUXPATH, self.pt_ID, EMR_utilities.dateToday('file format'))
	at = "%s/EMR_outputs/%s/Other/rcpt-%s.pdf" % (settings.APPLEPATH, self.pt_ID, EMR_utilities.dateToday('file format'))
	wt = "%s\EMR_outputs\%s\Other\rcpt-%s.pdf" % (settings.WINPATH, self.pt_ID, EMR_utilities.dateToday('file format'))
	filename = EMR_utilities.platformText(lt, at, wt)
	canvas = canvas.Canvas(filename, pagesize=letter)
	canvas.setLineWidth(.3)
	canvas.setFont('Helvetica', 12)
 
	canvas.drawString(30,750,'PAYMENT FOR MEDICAL SERVICES FOR %s' % self.name_find())
	canvas.drawString(30,735,'RENDERED AT BARRON FAMILY MEDICINE')
	canvas.drawString(500,750,"%s" % EMR_utilities.dateToday())
	canvas.line(480,747,580,747)
 
	canvas.drawString(275,725,'AMOUNT PAID:')
	canvas.drawString(500,725,"$%s" % self.amount)
	canvas.line(378,723,580,723)
 
	canvas.drawString(30,703,'RECEIVED BY:')
	canvas.line(120,700,580,700)
	canvas.drawString(120,703, settings.NAME)
 
	canvas.save()
Example #9
0
def contig_ticker(canvas, feature, cLen, Y0, offset, offset_mode):
    """Draw contig separators."""
    # get contig name
    name = feature.qualifiers.get('id')[0]
    # take start and end points
    location = feature.location
    Zs = location.nofuzzy_start
    Ze = location.nofuzzy_end
    # calculate offset coordinates
    if offset_mode == 'loop':
        offZs = offset_coord(Zs, cLen, offset)
        offZe = offset_coord(Ze, cLen, offset)
    elif offset_mode == 'nudge':
        offZs = nudge_coord(Zs, offset)
        offZe = nudge_coord(Ze, offset)
    else:
        offZs = Zs
        offZe = Ze
    xs, xe = offZs*u, offZe*u
    # set Y axis coordinates
    y0 = Y0-dop*3.5
    # draw
    canvas.setLineWidth(2)
    ttl = canvas.beginPath()
    ttl.moveTo(xs,y0)
    ttl.lineTo(xs,y0-h*4)
    ttl.lineTo(xs+dop,y0-h*4)
    canvas.drawPath(ttl, stroke=1, fill=0)
    canvas.setFont(bFont, NfSize)
    canvas.drawString(xs+dop*2, y0-h*4.5, name)
    canvas.setFont(rFont, SfSize)
    canvas.drawString(xs+dop*2,y0-h*8,"".join(["[",str(Zs),"-",str(Ze),"]"]))
    canvas.setFont(rFont, NfSize)
    ttl.close()
Example #10
0
def create_report():
    from reportlab.lib.pagesizes import letter
    from reportlab.pdfgen import canvas

    width, height = letter

    canvas = canvas.Canvas("form.pdf", pagesize=letter)

    canvas.setLineWidth(.3)
    canvas.setFont('Helvetica', 10)

    canvas.drawString(30, 750, 'OFFICIAL COMMUNIQUE')
    canvas.drawString(30, 735, 'OF ACME INDUSTRIES')
    canvas.drawString(500, 750, "12/12/2010")
    canvas.line(480, 747, 580, 747)

    canvas.drawString(275, 725, 'AMOUNT OWED:')
    canvas.drawString(500, 725, "$1,000.00")
    canvas.line(378, 723, 580, 723)

    canvas.drawString(30, 703, 'RECEIVED BY:')
    canvas.line(110, 700, 580, 700)
    canvas.drawString(110, 703, "JOHN DOE")

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

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

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

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

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

        canvas.restoreState()
Example #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
Example #13
0
 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)
Example #14
0
    def beforeDrawPage(self, canvas, doc):
        if self.background != None:
            self.background.draw_on(canvas)

        (width, height) = canvas._pagesize
        canvas.setLineWidth(0.2 * cm)
        canvas.line(cm, height - (2*cm), width - cm, height - (2*cm))
        canvas.line(cm, (2*cm), width - cm, (2*cm))
Example #15
0
def framePage(canvas, title, pos):
    canvas.setFont('Times-Roman', 15)
    canvas.drawString(inch, pos * inch, title)
    canvas.setFont('Times-Roman', 10)
    canvas.drawCentredString(4.135 * inch, 0.75 * inch,
                            'Página %d' % canvas.getPageNumber())
    #reset carefully afterwards
    canvas.setLineWidth(1)
    canvas.setStrokeColorRGB(0, 0, 0)
Example #16
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)
Example #17
0
 def myLaterPages(canvas, doc):
     from reportlab.lib.colors import red
     PAGE_HEIGHT = canvas._pagesize[1]
     canvas.saveState()
     canvas.setStrokeColor(red)
     canvas.setLineWidth(5)
     canvas.line(66,72,66,PAGE_HEIGHT-72)
     canvas.setFont('Times-Roman',12)
     canvas.drawString(4 * inch, 0.75 * inch, "Page %d" % doc.page)
     canvas.restoreState()
Example #18
0
File: invoice.py Project: ses4j/ts
def draw_header(canvas):
    """ Draws the invoice header """
    canvas.setStrokeColorRGB(176/255., 196/255., 222/255.)
    # canvas.setStrokeColorRGB(0.9, 0.5, 0.2)
    canvas.setFillColorRGB(0.2, 0.2, 0.2)
    canvas.setFont('Helvetica', 16)
    canvas.drawString(18 * cm, -1 * cm, 'Invoice')
    if consultant_logo_filename:
        canvas.drawInlineImage(consultant_logo_filename, 1 * cm, -1 * cm, 250, 16)
    canvas.setLineWidth(4)
    canvas.line(0, -1.25 * cm, 21.7 * cm, -1.25 * cm)
Example #19
0
 def myFirstPage(canvas, doc):
     from reportlab.lib.colors import red
     PAGE_HEIGHT = canvas._pagesize[1]
     canvas.saveState()
     canvas.setStrokeColor(red)
     canvas.setLineWidth(5)
     canvas.line(66,72,66,PAGE_HEIGHT-72)
     canvas.setFont('Times-Bold',24)
     canvas.drawString(108, PAGE_HEIGHT-108, "TABLE OF CONTENTS DEMO")
     canvas.setFont('Times-Roman',12)
     canvas.drawString(4 * inch, 0.75 * inch, "First Page")
     canvas.restoreState()
Example #20
0
 def myFirstPage(canvas, doc):
     from reportlab.lib.colors import red
     PAGE_HEIGHT = canvas._pagesize[1]
     canvas.saveState()
     canvas.setStrokeColor(red)
     canvas.setLineWidth(5)
     canvas.line(66, 72, 66, PAGE_HEIGHT - 72)
     canvas.setFont(_baseFontNameB, 24)
     canvas.drawString(108, PAGE_HEIGHT - 108, "TABLE OF CONTENTS DEMO")
     canvas.setFont(_baseFontName, 12)
     canvas.drawString(4 * inch, 0.75 * inch, "First Page")
     canvas.restoreState()
Example #21
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
        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))
Example #23
0
 def draw_main_doc_header(canvas, pdf):
     """ Draws the invoice header """
     canvas.saveState()
     canvas.translate(0, 29.7 * cm)
     canvas.setFont('Helvetica', 10)
     canvas.setStrokeColorRGB(0.9, 0.5, 0.2)
     canvas.setFillColorRGB(0.2, 0.2, 0.2)
     canvas.setFont('Helvetica', 16)
     canvas.drawString(18 * cm, -1 * cm, 'Invoice')
     canvas.drawInlineImage(INV_LOGO, 1 * cm, -1 * cm, 25, 25)
     canvas.setLineWidth(4)
     canvas.line(0, -1.25 * cm, 21.7 * cm, -1.25 * cm)
     canvas.restoreState()
Example #24
0
    def _headerfooter(self, canvas, doc):
        canvas.setLineWidth(1)

        canvas.saveState()
        canvas.setFont('Helvetica', 9)
        canvas.drawString(4, 410, "%s" % self.title)
        canvas.line(2, 407, 295, 407)
        canvas.setFont('Helvetica', 6)
        canvas.line(2, 10, 295, 10)
        canvas.drawString(
            4, 4,
            "PyAeromanger 14/2015 by zerodine GmbH - Thomas Spycher @tspycher")
        canvas.restoreState()
Example #25
0
    def draw_later_header(self, canvas, doc):
        header_string = f"{self.title} - {self.filename}".replace(
            "&lt;", "<").replace("&gt;", ">")

        canvas.setStrokeColorRGB(0, 0, 0)
        canvas.setLineWidth(0.5)
        canvas.setFont(_baseFontName, 10)
        print(
            f"Later Header Height: {self.bottomMargin + self.inner_height + 5}"
        )
        canvas.drawString(self.leftMargin + 5,
                          self.inner_height + self.bottomMargin + 5,
                          header_string)
Example #26
0
 def process(self):
     kw = dict(self.getAttributeValues())
     canvas = attr.getManager(self, interfaces.ICanvasManager).canvas
     if 'width' in kw:
         canvas.setLineWidth(kw['width'])
     if 'join' in kw:
         canvas.setLineJoin(kw['join'])
     if 'cap' in kw:
         canvas.setLineCap(kw['cap'])
     if 'miterLimit' in kw:
         canvas.setMiterLimit(kw['miterLimit'])
     if 'dash' in kw:
         canvas.setDash(kw['dash'])
Example #27
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()
def framePage(canvas, doc):
    # canvas.drawImage("snkanim.gif", 36, 36)
    canvas.saveState()
    canvas.setStrokeColorRGB(1, 0, 0)
    canvas.setLineWidth(5)
    canvas.line(66, 72, 66, PAGE_HEIGHT - 72)

    canvas.setFont("Times-Italic", 12)
    canvas.drawRightString(523, PAGE_HEIGHT - 56, "Platypus User Guide and Test Script")

    canvas.setFont("Times-Roman", 12)
    canvas.drawString(4 * inch, 0.75 * inch, "Page %d" % canvas.getPageNumber())
    canvas.restoreState()
Example #29
0
 def process(self):
     kw = dict(self.getAttributeValues())
     canvas = attr.getManager(self, interfaces.ICanvasManager).canvas
     if 'width' in kw:
         canvas.setLineWidth(kw['width'])
     if 'join' in kw:
         canvas.setLineJoin(kw['join'])
     if 'cap' in kw:
         canvas.setLineCap(kw['cap'])
     if 'miterLimit' in kw:
         canvas.setMiterLimit(kw['miterLimit'])
     if 'dash' in kw:
         canvas.setDash(kw['dash'])
Example #30
0
File: report.py Project: xfxf/dabo
	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()
Example #31
0
def print_receipt(tot_price, trans_id, cashier_id, amount_paid, amount_rem):
	#global last_trans, canvas, base, values, currentprinter, canvas
	print str(tot_price)+' '+str(trans_id)+' '+str(cashier_id)+str(last_trans)
	#raw_input("Press Enter to continue...")
	canvas = canvas.Canvas("receipt.pdf", pagesize=letter)
	canvas.setLineWidth(.3)
	canvas.setFont('Helvetica', 12)

	canvas.drawString(30,750,'CASHIER ID: '+str(cashier_id))
	canvas.drawString(30,735,'TRANSACTION ID: '+str(trans_id))

	canvas.drawString(500,750,time.strftime("%d/%m/%Y"))
	canvas.line(480,747,580,747)
	 
	canvas.drawString(275,725,'TOTAL PRICE:')
	canvas.drawString(500,725,"$"+str(tot_price))
	canvas.line(378,723,580,723)
	 
	canvas.drawString(30,703,'PRODUCTS:')
	canvas.drawString(120,703,'<Barcode>')
	canvas.drawString(190,703,'<Quantity>')
	canvas.drawString(260,703,'<Price>')

	#items = ['10005058 2 24.00', '10005058 2 24.00']
	base = 683
	print last_trans
	for check in last_trans:
		values = check.split()
		print values
		#raw_input('print check')
		left= 120
		for value in values:
			canvas.drawString(left,base,str(value))
			left+=70
		base=base-30

	canvas.line(120,base,580,base)
	base-=30
	canvas.drawString(120,base,'AMOUNT PAID: $ %.2f'%amount_paid)
	canvas.line(120,base-10,580,base-10)
	base-=30
	canvas.drawString(120,base,'CHANGE: $ %.2f'%amount_rem)
	base-=30
	canvas.line(120,base-10,580,base-10)
	canvas.save()
	currentprinter = win32print.GetDefaultPrinter()
	if len(currentprinter):
		win32print.SetDefaultPrinter(currentprinter)
		win32api.ShellExecute(0, "print", 'receipt.pdf', None,  ".",  0)	
	threading.Timer(15, lambda: os.remove('receipt.pdf') ).start()
def framePage(canvas, title):
    canvas.setFont("Times-BoldItalic", 20)
    canvas.drawString(inch, 10.5 * inch, title)

    canvas.setFont("Times-Roman", 10)
    canvas.drawCentredString(4.135 * inch, 0.75 * inch, "Page %d" % canvas.getPageNumber())

    # draw a border
    canvas.setStrokeColorRGB(1, 0, 0)
    canvas.setLineWidth(5)
    canvas.line(0.8 * inch, inch, 0.8 * inch, 10.75 * inch)
    # reset carefully afterwards
    canvas.setLineWidth(1)
    canvas.setStrokeColorRGB(0, 0, 0)
Example #33
0
def framePage(canvas,doc):
    #canvas.drawImage("snkanim.gif", 36, 36)
    canvas.saveState()
    canvas.setStrokeColorRGB(1,0,0)
    canvas.setLineWidth(5)
    canvas.line(66,72,66,PAGE_HEIGHT-72)

    canvas.setFont('Times-Italic',12)
    canvas.drawRightString(523, PAGE_HEIGHT - 56, "Platypus User Guide and Test Script")

    canvas.setFont('Times-Roman',12)
    canvas.drawString(4 * inch, 0.75 * inch,
                        "Page %d" % canvas.getPageNumber())
    canvas.restoreState()
Example #34
0
def landscape(canvas, doc):
    canvas.saveState()

    # Page background
    canvas.setStrokeColor(colors.black)
    canvas.setLineWidth(1)
    canvas.setFillColor('#e6ded5')
    canvas.roundRect(0.5 * u.inch,
                     0.5 * u.inch,
                     10.0 * u.inch,
                     7.5 * u.inch,
                     0.15 * u.inch,
                     stroke=1,
                     fill=1)
    canvas.restoreState()
	def myFirstPage(self,canvas, doc):
		canvas.saveState()
		canvas.drawImage(STATICFILES_DIRS[0]+'escudo_transito.jpg',35, PAGE_HEIGHT-115)
		canvas.setLineWidth(1)
		canvas.line(10, 723, 600,723)
		canvas.setFont('Times-Roman',8)
		canvas.drawString(10,PAGE_HEIGHT-130, "MUNICIPIO DE LEON GUANAJUATO")
		canvas.drawString(10,PAGE_HEIGHT-142, "SECRETARIA DE SEGURIDAD PUBLICA")
		canvas.drawString(420,PAGE_HEIGHT-142, "INFORME DE CAPTURA DE INFRACCIONES")
		canvas.setFillColorRGB(1,0,0)
		canvas.setFontSize(18)
		canvas.setFontSize(10)
		canvas.setFillColorRGB(0,0,0)
		canvas.drawString(10,PAGE_HEIGHT-154, "DIRECCION GENERAL DE TRANSITO MUNICIPAL")
		
Example #36
0
def framePage(canvas, title):
    canvas.setFont('Times-BoldItalic', 20)
    canvas.drawString(inch, 10.5 * inch, title)

    canvas.setFont('Times-Roman', 10)
    canvas.drawCentredString(4.135 * inch, 0.75 * inch,
                             'Page %d' % canvas.getPageNumber())

    #draw a border
    canvas.setStrokeColorRGB(1, 0, 0)
    canvas.setLineWidth(5)
    canvas.line(0.8 * inch, inch, 0.8 * inch, 10.75 * inch)
    #reset carefully afterwards
    canvas.setLineWidth(1)
    canvas.setStrokeColorRGB(0, 0, 0)
Example #37
0
def header(canvas, DOC, MAPHEADERTEXT):
    """Draws the page header"""
    arcpy.AddMessage("Drawing Header...")
    canvas.saveState()
    header_top_padding = 1*cm
    logo_image_height = 50
    logo_header_gap = 0.75*cm
    indent_right = 40
    docy = PAGE_HEIGHT-60

    style_header = getSampleStyleSheet()
    style_header.add(ParagraphStyle(name='BodyT', alignment=TA_LEFT,
                                    borderPadding=(5, 10, 10), fontName='Vera',
                                    fontSize=14, spaceAfter=6,
                                    backColor=Color(0, 0.2627450980392157,
                                                    0.42745098039215684, 1),
                                    textColor=Color(1, 1, 1, 1)))
    para = Paragraph(MAPHEADERTEXT, style_header["BodyT"])

    logo_image_width, imageheight = ImageReader(IMAGE).getSize()

    aspect_ratio = imageheight/(float(logo_image_width))
    reduceby = 0.1

    while logo_image_height <= imageheight:
        logo_image_width = logo_image_width - reduceby
        imageheight = logo_image_width*aspect_ratio
        reduceby += 0.1

    para_width_total, para_height = para.wrap(DOC.width + 0.70*inch
                                              - logo_image_width
                                              - logo_header_gap,
                                              DOC.topMargin + 0.5 *inch)

    logo_y = ((para_height + imageheight) / 2) + header_top_padding
    canvas.drawImage(ImageReader(IMAGE), indent_right, PAGE_HEIGHT-logo_y,
                     logo_image_width, imageheight, mask='auto')

    para_y = para_height + header_top_padding

    para.drawOn(canvas,
                (indent_right+ 0.1*cm + logo_image_width + logo_header_gap),
                (PAGE_HEIGHT - para_y))

    canvas.setLineWidth(1.0)
    canvas.setStrokeColor(Color(0, 0.2627450980392157, 0.42745098039215684, 1))
    canvas.line(indent_right, docy, (PAGE_WIDTH - indent_right), docy)
    canvas.restoreState()
Example #38
0
    def __call__(self, canvas, doc):
        canvas.saveState()
        w, h = canvas._pagesize

        # Gen hline coords
        left_margin, right_margin, top_margin, linewidth = self._gen_line_coords(
        )
        line_start_x = left_margin
        line_start_y = h - top_margin
        line_end_x = w - right_margin
        line_end_y = h - top_margin

        # Set text fonts
        font_name = ParagraphStyleGenerator._gen_font()
        font_size = random_integer_from_list(self.config['text']['font_size'])
        canvas.setFont(font_name, font_size)

        # draw text
        text_locations = self.config['text']['locations']
        random_locations = np.random.choice(text_locations,
                                            size=np.random.randint(
                                                0,
                                                len(text_locations) + 1),
                                            replace=False)
        for loc in random_locations:
            if loc == 'left':
                canvas.drawString(line_start_x, line_start_y + font_size // 3,
                                  self._gen_text())
            elif loc == 'right':
                words = self._gen_text()
                canvas.drawString(line_end_x - font_size * len(words),
                                  line_start_y + font_size // 3, words)
            elif loc == 'center':
                canvas.drawCentredString(w / 2, line_start_y + font_size // 3,
                                         self._gen_text())
            else:
                raise ValueError("Text location %s not identified !" % loc)

        # draw hline
        canvas.setLineWidth(linewidth)
        canvas.line(line_start_x, line_start_y, line_end_x, line_end_y)

        # add footer
        line_y = random_integer_from_list([20, 40])
        canvas.drawCentredString(w / 2, line_y, str(np.random.randint(100)))

        canvas.restoreState()
Example #39
0
    def draw_footer(self, canvas, doc):

        canvas.setStrokeColorRGB(0, 0, 0)
        canvas.setLineWidth(0.5)
        canvas.setFont('Times-Roman', 10)

        username = getpass.getuser()
        device = socket.gethostname()
        creation_time = datetime.datetime.now().strftime("%H:%M:%S %d/%m/%Y")

        footer_string = f"Generated from {self.full_filename} by {username}@{device} on {creation_time}"
        # split_len = 100
        split_len = self.inner_width / 4.6
        print("Making Footer!")
        generated_by_height = canvas.footer_height + (cm * 0.5)

        if len(footer_string) > split_len:
            wrap_text = textwrap.wrap(footer_string, width=split_len)[::-1]
            for idx, line in enumerate(wrap_text):
                canvas.drawString(doc.leftMargin,
                                  generated_by_height + (idx * 0.5 * cm), line)
            canvas.line(
                x1=doc.leftMargin,
                y1=generated_by_height + (len(wrap_text) * 0.5 * cm),
                x2=doc.pagesize[0] - 50,
                y2=generated_by_height + (len(wrap_text) * 0.5 * cm),
            )

        elif len(footer_string) < self.inner_width / 6:
            canvas.drawString(doc.leftMargin, canvas.footer_height,
                              footer_string)
            canvas.line(
                x1=doc.leftMargin,
                y1=canvas.footer_height + (0.5 * cm),
                x2=doc.pagesize[0] - 50,
                y2=canvas.footer_height + (0.5 * cm),
            )

        else:
            canvas.drawString(doc.leftMargin, generated_by_height,
                              footer_string)
            canvas.line(
                x1=doc.leftMargin,
                y1=generated_by_height + (0.5 * cm),
                x2=doc.pagesize[0] - 50,
                y2=generated_by_height + (0.5 * cm),
            )
Example #40
0
File: rlab.py Project: wiz21b/koi
def full_background(canvas, document):
    canvas.saveState()
    # canvas.drawImage("background.jpg", 0,0, A4[0], A4[1])

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

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

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

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

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

    canvas.restoreState()
Example #41
0
    def draw(self, pmlOp, pageNr, canvas, pe):
        # we need to adjust y position since PDF uses baseline of text as
        # the y pos, but pml uses top of the text as y pos. The Adobe
        # standard Courier family font metrics give 157 units in 1/1000
        # point units as the Descender value, thus giving (1000 - 157) =
        # 843 units from baseline to top of text.

        # http://partners.adobe.com/asn/tech/type/ftechnotes.jsp contains
        # the "Font Metrics for PDF Core 14 Fonts" document.

        x = pe.x(pmlOp.x)
        y = pe.y(pmlOp.y) - 0.843 * pmlOp.size

        if pe.doc.tocs and pmlOp.toc:
            key = "id%d" % id(pmlOp)
            canvas.bookmarkPage(key,
                                fit="XYZ",
                                left=pe.x(pmlOp.x),
                                top=pe.y(pmlOp.y))
            canvas.addOutlineEntry(pmlOp.toc.text, key)

        newFont = (pe.getFontNr(pmlOp.flags), pmlOp.size)
        if newFont != pe.currentFont:
            canvas.setFont(*newFont)
            pe.currentFont = newFont

        if pmlOp.angle is None or pmlOp.angle == 0.0:
            canvas.drawString(x, y, pmlOp.text)
        else:
            canvas.saveState()
            canvas.translate(x, y)
            canvas.rotate(pmlOp.angle)
            canvas.drawString(0, 0, pmlOp.text)
            canvas.restoreState()

        if pmlOp.flags & pml.UNDERLINED:

            undLen = fontinfo.getMetrics(pmlOp.flags).getTextWidth(
                pmlOp.text, pmlOp.size)

            # all standard PDF fonts have the underline line 100 units
            # below baseline with a thickness of 50
            undY = y - 0.1 * pmlOp.size

            canvas.setLineWidth(0.05 * pmlOp.size)
            canvas.line(x, undY, x + undLen, undY)
Example #42
0
def baseliner(cLen, canvas, Y_map, nudge):  # loop offset has no effect
    """Draw sequence baseline."""
    canvas.setLineWidth(3)
    y0 = Y_map
    Zs = 0              # all sequences are initially aligned on the left
    Ze = cLen
    # calculate nudge offsets
    offZs = nudge_coord(Zs, nudge)
    offZe = nudge_coord(Ze, nudge)
    # set zeroes
    x0 = offZs*u
    x1 = offZe*u
    pBL = canvas.beginPath()
    pBL.moveTo(x0,y0)
    pBL.lineTo(x1,y0)
    canvas.drawPath(pBL, stroke=1, fill=0)
    pBL.close()
Example #43
0
def rectInterna(canvas,
                x0,
                x1,
                y0,
                renglones,
                altura_renglon,
                linewidth=0.5,
                title=0):
    canvas.setLineWidth(linewidth)
    # escalar x1 razon desconocida
    x1 *= 1.355
    # empezar en x0, y0+altura renglon
    for i in range(1, renglones):
        canvas.setLineWidth(
            linewidth *
            2.3) if (title == 1 and i == 1) else canvas.setLineWidth(linewidth)
        # x0,y0,x1,y1
        canvas.line(x0, y0 + altura_renglon * i, x1, y0 + altura_renglon * i)
 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)
Example #45
0
    def draw(self, pmlOp, pageNr, canvas, pe):
        if pmlOp.lw != -1:
            canvas.setLineWidth(pe.mm2points(pmlOp.lw))

        path = canvas.beginPath()

        path.rect(pe.x(pmlOp.x),
                  pe.y(pmlOp.y) - pe.mm2points(pmlOp.height),
                  pe.mm2points(pmlOp.width), pe.mm2points(pmlOp.height))

        if pmlOp.fillType == pml.STROKE:
            canvas.drawPath(path)
        elif pmlOp.fillType == pml.FILL:
            canvas.drawPath(path, stroke=0, fill=1)
        elif pmlOp.fillType == pml.STROKE_FILL:
            canvas.drawPath(path, stroke=1, fill=1)
        else:
            print "Invalid fill type for RectOp"
Example #46
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')
    def draw_page_size_A5(self, doc, canvas):
        # Header
        self.header.drawOn(canvas, doc.leftMargin + 40, doc.height + doc.topMargin + 20)
        self.patient_name.drawOn(canvas, doc.leftMargin + 40, doc.height + doc.topMargin - 15)

        # Footer
        self.medic_name.drawOn(canvas, doc.leftMargin + 10, 64)
        self.medic_specialty.drawOn(canvas, doc.leftMargin + 10, 52)
        self.medic_crm.drawOn(canvas, doc.leftMargin + 10, 40)
        self.footer.drawOn(canvas, doc.leftMargin + 10, 18)

        # Draw Lines.
        canvas.setLineWidth(0.5)
        canvas.line(66, 78, A5[0] - 66, 78)
        canvas.setLineWidth(.3)
        canvas.line(30, 500, 390, 500)
        if self.pattern.logo:
            img = ImageReader(self.pattern.logo.path)
            canvas.drawImage(img, 30, 510, 0.75 * inch, 0.75 * inch, mask='auto')
    def draw_page_size_letter(self, doc, canvas):
        # Header
        self.header.drawOn(canvas, doc.leftMargin + 40, doc.height + doc.topMargin - self.h)
        self.patient_name.drawOn(canvas, doc.leftMargin + 40, doc.height + doc.topMargin - 60)

        # Footer
        self.medic_name.drawOn(canvas, doc.leftMargin + 10, 60)
        self.medic_specialty.drawOn(canvas, doc.leftMargin + 10, 48)
        self.medic_crm.drawOn(canvas, doc.leftMargin + 10, 36)
        self.footer.drawOn(canvas, doc.leftMargin + 10, 12)

        # Draw Lines.
        canvas.setLineWidth(0.5)
        canvas.line(66, 78, letter[0] - 66, 78)
        canvas.setLineWidth(.3)
        canvas.line(30, 700, 580, 700)
        if self.pattern.logo:
            img = ImageReader(self.pattern.logo.path)
            canvas.drawImage(img, 30, 710, 1 * inch, 1 * inch, mask='auto')
Example #49
0
 def _add_conference_details(self, canvas):
     start_posn = self.start_posn
     canvas.setFillColor(colors.blue)
     canvas.setFont('Helvetica', 10)
     canvas.drawString(0.5 * inch, start_posn,
                       'Section A - Conference Information')
     canvas.setFillColor(colors.black)
     canvas.setLineWidth(1)
     canvas.rect(0.5 * inch, start_posn - 0.4 * inch, PAGE_WIDTH - inch,
                 0.3 * inch)
     canvas.line(2.5 * inch, start_posn - 0.4 * inch, 2.5 * inch,
                 start_posn - 0.1 * inch)
     canvas.setFillColor(colors.red)
     canvas.drawString(0.7 * inch, start_posn - 0.3 * inch,
                       self.event.number)
     canvas.setFillColor(colors.black)
     canvas.drawString(2.7 * inch, start_posn - 0.3 * inch,
                       self.event.title)
     self.start_posn = start_posn - 0.65 * inch
Example #50
0
def contig_ticker(canvas, feature, cLen, Y0, nudge, offset, side):
    """Draw contig separators."""
    # get contig name
    try:
    	name = feature.qualifiers.get('locus_tag')[0]
    except TypeError:
    	name = 'unnamed feature'
    # take start and end points
    location = feature.location
    Zs = location.nofuzzy_start
    Ze = location.nofuzzy_end
    # calculate loop offset coordinates
    loop_offZs = offset_coord(Zs, cLen, offset)
    loop_offZe = offset_coord(Ze, cLen, offset)
    # calculate nudge offset coordinates
    offZs = nudge_coord(loop_offZs, nudge)
    offZe = nudge_coord(loop_offZe, nudge)
    xs, xe = offZs*u, offZe*u
    # set Y axis coordinates
    if side == 'low':
        y0 = Y0-dop*3.5
        yT1 = y0-h*4
        yT2 = y0-h*4.5
        yT3 = y0-h*8
    else:
        y0 = Y0+dop*3.5
        yT1 = y0+h*4
        yT2 = y0+h*4.5
        yT3 = y0+h*8
    # draw
    canvas.setLineWidth(2)
    ttl = canvas.beginPath()
    ttl.moveTo(xs,y0)
    ttl.lineTo(xs,yT1)
    ttl.lineTo(xs+dop,yT1)
    canvas.drawPath(ttl, stroke=1, fill=0)
    canvas.setFont(bFont, NfSize)
    canvas.drawString(xs+dop*2, yT2, name)
    canvas.setFont(rFont, SfSize)
    canvas.drawString(xs+dop*2,yT3,"".join(["[",str(Zs),"-",str(Ze),"]"]))
    canvas.setFont(rFont, NfSize)
    ttl.close()
Example #51
0
def _footer(canvas, doc):
    splunkLayoutSettings = PAPERSIZES[doc.splunkPaperSize]
    canvas.saveState()
    canvas.setStrokeColorRGB(0.8, 0.8, 0.8)
    canvas.setLineWidth(1)  # hairline
    canvas.line(inch, inch, doc.width + inch, inch)
    canvas.setStrokeColorRGB(0.5, 0.5, 0.5)
    canvas.setFillColorRGB(0.586, 0.586, 0.586)
    canvas.drawRightString(doc.width + inch, 0.75 * inch - _TEXT_OFFSET,
                           "Page %d" % (doc.page))

    # draw title centered and ellipsized
    ellipsizedTitle = _ellipsize(doc.getTitle(),
                                 splunkLayoutSettings['ellipsizedTitleCount'])
    ellipsizedTitleWidth = doc.getFontManager().textWidth(
        ellipsizedTitle, _TITLE_SIZE)
    textObject = canvas.beginText(
        inch + doc.width / 2 - ellipsizedTitleWidth / 2,
        0.75 * inch - _TEXT_OFFSET)
    doc.getFontManager().addTextAndFontToTextObject(textObject,
                                                    ellipsizedTitle,
                                                    _TITLE_SIZE)
    canvas.drawText(textObject)

    timestamp = doc.getTimestamp()
    timestampWidth = doc.getFontManager().textWidth(timestamp, _DATE_SIZE)
    textObject = canvas.beginText(inch + doc.width - timestampWidth,
                                  inch - _TEXT_OFFSET)
    doc.getFontManager().addTextAndFontToTextObject(textObject, timestamp,
                                                    _DATE_SIZE)
    canvas.drawText(textObject)

    canvas.restoreState()
    canvas.saveState()
    if doc.getLogoDrawing() != None:
        logoDrawing = doc.getLogoDrawing()
        renderPDF.draw(logoDrawing,
                       canvas,
                       inch,
                       inch - logoDrawing.height - _LOGO_OFFSET,
                       showBoundary=False)
    canvas.restoreState()
def footer(canvas, DOC):
    """Draws the page footer"""
    arcpy.AddMessage("Drawing Footer...")
    canvas.saveState()
    canvas.setFont("Vera", 7.5)

    text = MAPHEADERTEXT
    date_now = datetime.datetime.now()
    date_formatted = (str(time.strftime("%b")) + " " + str(date_now.day) +
                      ", " + str(date_now.year))
    canvas.drawRightString(DOC.width - (DOC.rightMargin - 2.35 * inch),
                           0.5 * DOC.bottomMargin, date_formatted)
    canvas.setFillGray(0.70)
    canvas.drawString(DOC.leftMargin - 25, 0.5 * DOC.bottomMargin, text)
    canvas.setLineWidth(2)
    canvas.setStrokeColor(Color(0, 0.2627450980392157, 0.42745098039215684, 1))
    pagex = 47.5
    pagey = 0.75 * DOC.bottomMargin
    canvas.line(pagex, pagey, (PAGE_WIDTH - pagex), pagey)
    canvas.restoreState()
Example #53
0
    def markField(self, canvas, punktX, punktY, deltaX, deltaY, tekst=None):
        """En fullstendig giro har hjørneklammer rundt hvert tekstfelt.
           PunktX og punktY setter øverste venstre hjørne i "boksen".
           deltaX og deltaY angir relativ avstand til nederste høyre hjørne."""

        # Oppe i venstre  hjørne P(12,65)
        canvas.setLineWidth(0.2*mm)
        canvas.lines([(punktX, punktY, punktX+2*mm, punktY), (punktX, punktY-2*mm, punktX, punktY)])
        # oppe i høyre hjørne P(98,65)
        canvas.lines([(punktX+deltaX-2*mm, punktY, punktX+deltaX, punktY), (punktX+deltaX, punktY-2*mm, punktX+deltaX, punktY)])

        # Nede i venstre hjørne P(12,43)
        canvas.lines([(punktX, punktY+deltaY, punktX+2*mm, punktY+deltaY), (punktX, punktY+deltaY, punktX, punktY+deltaY+2*mm)])
        # Nede i høyre hjørne P(98,43) # deltaX = 86, deltaY = -22
        canvas.lines([(punktX+deltaX-2*mm, punktY+deltaY, punktX+deltaX, punktY+deltaY), (punktX+deltaX, punktY+deltaY, punktX+deltaX, punktY+deltaY+2*mm)])

        if isinstance(tekst, basestring):
            # skriv hjelpetekst til boksen
            canvas.setFont("Helvetica-Bold", 6)
            canvas.drawString(punktX+3*mm,punktY+1*mm, tekst)
 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)
Example #55
0
def baseliner(cLen, canvas, Y_map, offset, offset_mode):
    """Draw sequence baseline."""
    canvas.setLineWidth(3)
    y0 = Y_map
    Zs = 0  # all sequences are initially aligned on the left
    Ze = cLen
    # calculate offsets
    if offset_mode == 'nudge':
        offZs = nudge_coord(Zs, offset)
        offZe = nudge_coord(Ze, offset)
    else:
        offZs = Ze
        offZe = Zs
    x0 = offZs * u
    x1 = offZe * u
    pBL = canvas.beginPath()
    pBL.moveTo(x0, y0)
    pBL.lineTo(x1, y0)
    canvas.drawPath(pBL, stroke=1, fill=0)
    pBL.close()
Example #56
0
    def draw_ruler(self,
                   canvas,
                   x,
                   y,
                   length,
                   orientation=HORIZONTAL,
                   units=METRIC):

        # Ruler attributes for METRIC and IMPERIAL
        measurements = {
            CalibrationPage.METRIC: {
                'resolution': 0.1 * cm,
                'tick_lengths': [(1, 0.1 * cm), (10, 0.2 * cm)]
            },
            CalibrationPage.IMPERIAL: {
                'resolution':
                0.03125 * inch,
                'tick_lengths': [(1, 0.1 * cm), (4, 0.15 * cm), (8, 0.2 * cm),
                                 (16, 0.25 * cm), (32, 0.3 * cm)]
            }
        }

        canvas.saveState()
        canvas.setLineWidth(0.2)

        if orientation == CalibrationPage.VERTICAL:
            canvas.rotate(90)
            (x, y) = (y, -x)

        canvas.line(x, y, x + length, y)

        tick_placement = x
        settings = measurements[units]
        for tick in range(int(math.ceil(length / settings['resolution'])) + 1):
            for division, size in settings['tick_lengths']:
                if tick % division == 0:
                    tick_length = size
            canvas.line(tick_placement, y, tick_placement, y - tick_length)
            tick_placement += settings['resolution']

        canvas.restoreState()
	def draw_label(self, rect):
		canvas.setFillColor(reportlab.lib.colors.black)

		if args.grid:
			canvas.setStrokeColor(reportlab.lib.colors.grey)
			canvas.setLineWidth(1)
			canvas.rect(rect.x * inch, rect.y * inch, rect.w * inch, rect.h * inch)

		v = series[self.pos] *  10 ** self.decade
		
		v_with_units = (v, '\u2126')

		if (v >= 1000 and v < 10 ** 6):
			v_with_units = (v/1000, "K" + v_with_units[1])
		elif (v >= 10 ** 6):
			v_with_units = (v/10 ** 6, "M" + v_with_units[1])

		v_str = ("{:.5g} " + v_with_units[1]).format(v_with_units[0])
		print(v_str)

		canvas.setStrokeColor(reportlab.lib.colors.black)
		canvas.setFont("Helvetica-Bold", 18)
		y = (rect.y + 1/8)
		canvas.drawString((rect.x + 1/8) * inch, y * inch, v_str)
		
		stripes = list(stripes1and2[self.pos]) + [colors[self.decade]]
		stripes.reverse()
		stripeD = Dim(w = 1/8, h = 1/4)
		x = rect.x + rect.w - 1/8 - stripeD.w
		for s in stripes:
			canvas.setFillColor(s)
			canvas.setStrokeColor(reportlab.lib.colors.grey)
			canvas.rect(x * inch, y * inch, stripeD.w * inch, stripeD.h * inch, stroke = 1, fill = 1)
			x -= 1/16 + stripeD.w

		self.pos += 1
		if self.pos == len(series):
			self.decade += 1
			self.pos = 0

		return (v != max_value)
Example #58
0
    def render(self, pagemgr):
        rendered = []
        frame = None
        canvas = None
        if pagemgr is not None:
            frame = pagemgr.getcurrentframe()
            canvas = pagemgr.getcanvas()

        basestyle = self._baseelement.getstyle()
        border = basestyle.getattribute('border', float)
        color = basestyle.getattribute('color', str)

        pos_xy, r_xy = self._baseelement.getellipse()
        canvas_height = canvas._pagesize[1]
        pos_y = canvas_height - pos_xy[1]

        canvas.saveState()
        canvas.setStrokeColor(color)
        canvas.setLineWidth(float(border))
        canvas.ellipse(pos_xy[0], pos_y, pos_xy[0] + r_xy[0], pos_y - r_xy[1])
        canvas.restoreState()