Exemplo n.º 1
0
 def _Flag_None(self):
     s = _size  # abbreviate as we will use this a lot
     g = Group()
     g.add(Rect(0, 0, s*2, s, fillColor = colors.purple, strokeColor = colors.black, strokeWidth=0))
     return g
Exemplo n.º 2
0
    def makeLines(self):
        g = Group()

        labelFmt = self.lineLabelFormat
        P = list(range(len(self._positions)))
        if self.reversePlotOrder: P.reverse()
        inFill = self.inFill
        if inFill:
            inFillY = self.categoryAxis._y
            inFillX0 = self.valueAxis._x
            inFillX1 = inFillX0 + self.categoryAxis._length
            inFillG = getattr(self,'_inFillG',g)
        yzero = self._yzero

        # Iterate over data rows.
        for rowNo in P:
            row = self._positions[rowNo]
            styleCount = len(self.lines)
            styleIdx = rowNo % styleCount
            rowStyle = self.lines[styleIdx]
            rowColor = rowStyle.strokeColor
            dash = getattr(rowStyle, 'strokeDashArray', None)
            lineStyle = getattr(rowStyle,'lineStyle',None)

            if hasattr(rowStyle, 'strokeWidth'):
                strokeWidth = rowStyle.strokeWidth
            elif hasattr(self.lines, 'strokeWidth'):
                strokeWidth = self.lines.strokeWidth
            else:
                strokeWidth = None

            # Iterate over data columns.
            if lineStyle=='bar':
                barWidth = getattr(rowStyle,'barWidth',Percentage(50))
                fillColor = getattr(rowStyle,'fillColor',rowColor)
                if isinstance(barWidth,Percentage):
                    hbw = self._hngs*barWidth*0.01
                else:
                    hbw = barWidth*0.5
                for colNo in range(len(row)):
                    x,y = row[colNo]
                    g.add(Rect(x-hbw,min(y,yzero),2*hbw,abs(y-yzero),strokeWidth=strokeWidth,strokeColor=rowColor,fillColor=fillColor))
            elif self.joinedLines or lineStyle=='joinedLine':
                points = []
                for colNo in range(len(row)):
                    points += row[colNo]
                if inFill:
                    points = points + [inFillX1,inFillY,inFillX0,inFillY]
                    inFillG.add(Polygon(points,fillColor=rowColor,strokeColor=rowColor,strokeWidth=0.1))
                else:
                    line = PolyLine(points,strokeColor=rowColor,strokeLineCap=0,strokeLineJoin=1)
                    if strokeWidth:
                        line.strokeWidth = strokeWidth
                    if dash:
                        line.strokeDashArray = dash
                    g.add(line)

            if hasattr(rowStyle, 'symbol'):
                uSymbol = rowStyle.symbol
            elif hasattr(self.lines, 'symbol'):
                uSymbol = self.lines.symbol
            else:
                uSymbol = None

            if uSymbol:
                for colNo in range(len(row)):
                    x1, y1 = row[colNo]
                    symbol = uSymbol2Symbol(uSymbol,x1,y1,rowStyle.strokeColor)
                    if symbol: g.add(symbol)

            # Draw item labels.
            for colNo in range(len(row)):
                x1, y1 = row[colNo]
                self.drawLabel(g, rowNo, colNo, x1, y1)

        return g
Exemplo n.º 3
0
def run():
    styles = getSampleStyleSheet()
    styleN = styles['Normal']
    styleH = styles['Heading1']
    story = []
    storyAdd = story.append

    #for codeNames in code
    storyAdd(Paragraph('I2of5', styleN))
    storyAdd(I2of5(1234, barWidth = inch*0.02, checksum=0))

    storyAdd(Paragraph('MSI', styleN))
    storyAdd(MSI(1234))

    storyAdd(Paragraph('Codabar', styleN))
    storyAdd(Codabar("A012345B", barWidth = inch*0.02))

    storyAdd(Paragraph('Code 11', styleN))
    storyAdd(Code11("01234545634563"))

    storyAdd(Paragraph('Code 39', styleN))
    storyAdd(Standard39("A012345B%R"))

    storyAdd(Paragraph('Extended Code 39', styleN))
    storyAdd(Extended39("A012345B}"))

    storyAdd(Paragraph('Code93', styleN))
    storyAdd(Standard93("CODE 93"))

    storyAdd(Paragraph('Extended Code93', styleN))
    storyAdd(Extended93("L@@K! Code 93 :-)")) #, barWidth=0.005 * inch))

    storyAdd(Paragraph('Code 128', styleN))
    storyAdd(Code128("AB-12345678"))

    storyAdd(Paragraph('Code 128 Auto', styleN))
    storyAdd(Code128Auto("AB-12345678"))

    storyAdd(Paragraph('USPS FIM', styleN))
    storyAdd(FIM("A"))

    storyAdd(Paragraph('USPS POSTNET', styleN))
    storyAdd(POSTNET('78247-1043'))

    storyAdd(Paragraph('USPS 4 State', styleN))
    storyAdd(USPS_4State('01234567094987654321','01234567891'))

    from reportlab.graphics.barcode import createBarcodeDrawing

    storyAdd(Paragraph('EAN13', styleN))
    storyAdd(createBarcodeDrawing('EAN13', value='123456789012'))

    storyAdd(Paragraph('EAN13 quiet=False', styleN))
    storyAdd(createBarcodeDrawing('EAN13', value='123456789012', quiet=False))

    storyAdd(Paragraph('EAN8', styleN))
    storyAdd(createBarcodeDrawing('EAN8', value='1234567'))

    storyAdd(PageBreak())

    storyAdd(Paragraph('EAN5 price=True', styleN))
    storyAdd(createBarcodeDrawing('EAN5', value='11299', price=True))

    storyAdd(Paragraph('EAN5 price=True quiet=False', styleN))
    storyAdd(createBarcodeDrawing('EAN5', value='11299', price=True, quiet=False))

    storyAdd(Paragraph('EAN5 price=False', styleN))
    storyAdd(createBarcodeDrawing('EAN5', value='11299', price=False))

    storyAdd(Paragraph('ISBN alone', styleN))
    storyAdd(createBarcodeDrawing('ISBN', value='9781565924796'))

    storyAdd(Paragraph('ISBN  with ean5 price', styleN))
    storyAdd(createBarcodeDrawing('ISBN', value='9781565924796',price='01299'))

    storyAdd(Paragraph('ISBN  with ean5 price, quiet=False', styleN))
    storyAdd(createBarcodeDrawing('ISBN', value='9781565924796',price='01299',quiet=False))

    storyAdd(Paragraph('UPCA', styleN))
    storyAdd(createBarcodeDrawing('UPCA', value='03600029145'))

    storyAdd(Paragraph('USPS_4State', styleN))
    storyAdd(createBarcodeDrawing('USPS_4State', value='01234567094987654321',routing='01234567891'))

    storyAdd(Paragraph('QR', styleN))
    storyAdd(createBarcodeDrawing('QR', value='01234567094987654321'))

    storyAdd(Paragraph('QR', styleN))
    storyAdd(createBarcodeDrawing('QR', value='01234567094987654321',x=30,y=50))

    def addCross(d,x,y,w=5,h=5, strokeColor='black', strokeWidth=0.5):
        w *= 0.5
        h *= 0.5
        d.add(Line(x-w,y,x+w,y,strokeWidth=0.5,strokeColor=colors.blue))
        d.add(Line(x, y-h, x, y+h,strokeWidth=0.5,strokeColor=colors.blue))
    storyAdd(Paragraph('QR in drawing at (0,0)', styleN))
    d = Drawing(100,100)
    d.add(Rect(0,0,100,100,strokeWidth=1,strokeColor=colors.red,fillColor=None))
    d.add(QrCodeWidget(value='01234567094987654321'))
    storyAdd(d)

    storyAdd(Paragraph('QR in drawing at (10,10)', styleN))
    d = Drawing(100,100)
    d.add(Rect(0,0,100,100,strokeWidth=1,strokeColor=colors.red,fillColor=None))
    addCross(d,10,10)
    d.add(QrCodeWidget(value='01234567094987654321',x=10,y=10))
    storyAdd(d)

    storyAdd(Paragraph('Label Size', styleN))
    storyAdd(XBox((2.0 + 5.0/8.0)*inch, 1 * inch, '1x2-5/8"'))

    storyAdd(Paragraph('Label Size', styleN))
    storyAdd(XBox((1.75)*inch, .5 * inch, '1/2x1-3/4"'))

    if pylibdmtx:
        storyAdd(PageBreak())
        storyAdd(Paragraph('DataMatrix in drawing at (10,10)', styleN))
        d = Drawing(100,100)
        d.add(Rect(0,0,100,100,strokeWidth=1,strokeColor=colors.red,fillColor=None))
        addCross(d,10,10)
        d.add(DataMatrixWidget(value='1234567890',x=10,y=10))
        storyAdd(d)
        storyAdd(Paragraph('DataMatrix in drawing at (10,10)', styleN))
        d = Drawing(100,100)
        d.add(Rect(0,0,100,100,strokeWidth=1,strokeColor=colors.red,fillColor=None))
        addCross(d,10,10)
        d.add(DataMatrixWidget(value='1234567890',x=10,y=10,color='black',bgColor='lime'))
        storyAdd(d)

        storyAdd(Paragraph('DataMatrix in drawing at (90,90) anchor=ne', styleN))
        d = Drawing(100,100)
        d.add(Rect(0,0,100,100,strokeWidth=1,strokeColor=colors.red,fillColor=None))
        addCross(d,90,90)
        d.add(DataMatrixWidget(value='1234567890',x=90,y=90,color='darkblue',bgColor='yellow', anchor='ne'))
        storyAdd(d)
    

    SimpleDocTemplate('out.pdf').build(story)
    print('saved out.pdf')
Exemplo n.º 4
0
    def draw(self):
        g = Group()
        ys = self.bottomPadding + (
            self.triangleHeight /
            2) + self.sourceLabelOffset + self.sourceLabelFontSize
        if self.background:
            x, y = self._getDrawingDimensions()
            g.add(
                Rect(-self.leftPadding,
                     -ys,
                     x,
                     y,
                     strokeColor=None,
                     strokeWidth=0,
                     fillColor=self.background))

        ascent = getFont(self.labelFontName).face.ascent / 1000.
        if ascent == 0: ascent = 0.718  # default (from helvetica)
        ascent = ascent * self.labelFontSize  # normalize

        colorsList = self._getColors()

        # Draw the boxes - now uses ShadedRect from grids
        x = 0
        for f in range(0, self.numberOfBoxes):
            sr = ShadedRect()
            sr.x = x
            sr.y = 0
            sr.width = self.boxWidth
            sr.height = self.boxHeight
            sr.orientation = 'vertical'
            sr.numShades = 30
            sr.fillColorStart = colorsList[f]
            sr.fillColorEnd = colorsList[f + 1]
            sr.strokeColor = None
            sr.strokeWidth = 0

            g.add(sr)

            g.add(
                Rect(x,
                     0,
                     self.boxWidth,
                     self.boxHeight,
                     strokeColor=self.boxOutlineColor,
                     strokeWidth=self.boxOutlineWidth,
                     fillColor=None))

            g.add(
                String(x + self.boxWidth / 2., (self.boxHeight - ascent) / 2.,
                       text=str(f + 1),
                       fillColor=self.labelFillColor,
                       strokeColor=self.labelStrokeColor,
                       textAnchor='middle',
                       fontName=self.labelFontName,
                       fontSize=self.labelFontSize))
            x = x + self.boxWidth + self.boxSpacing

        #do triangles
        xt = (self.trianglePosition * self.boxWidth)
        if self.trianglePosition > 1:
            xt = xt + (self.trianglePosition - 1) * self.boxSpacing
        xt = xt - (self.boxWidth / 2)
        g.add(
            Polygon(strokeColor=self.triangleStrokeColor,
                    strokeWidth=self.triangleStrokeWidth,
                    fillColor=self.triangleFillColor,
                    points=[
                        xt, self.boxHeight - (self.triangleHeight / 2),
                        xt - (self.triangleWidth / 2),
                        self.boxHeight + (self.triangleHeight / 2),
                        xt + (self.triangleWidth / 2),
                        self.boxHeight + (self.triangleHeight / 2), xt,
                        self.boxHeight - (self.triangleHeight / 2)
                    ]))
        g.add(
            Polygon(strokeColor=self.triangleStrokeColor,
                    strokeWidth=self.triangleStrokeWidth,
                    fillColor=self.triangleFillColor,
                    points=[
                        xt, 0 + (self.triangleHeight / 2),
                        xt - (self.triangleWidth / 2),
                        0 - (self.triangleHeight / 2),
                        xt + (self.triangleWidth / 2),
                        0 - (self.triangleHeight / 2), xt,
                        0 + (self.triangleHeight / 2)
                    ]))

        #source label
        if self.sourceLabelText != None:
            g.add(
                String(x - self.boxSpacing,
                       0 - (self.triangleHeight / 2) - self.sourceLabelOffset -
                       (self.sourceLabelFontSize),
                       text=self.sourceLabelText,
                       fillColor=self.sourceLabelFillColor,
                       textAnchor='end',
                       fontName=self.sourceLabelFontName,
                       fontSize=self.sourceLabelFontSize))

        g.shift(self.leftPadding, ys)

        return g
 def __init__(self, width=400, height=200, *args, **kw):
     Drawing.__init__(self, width, height, *args, **kw)
     self.transform = (1, 0, 0, 1, 0, 0)
     self.add(
         Rect(50,
              50,
              300,
              125,
              rx=0,
              ry=0,
              fillColor=None,
              fillOpacity=None,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Rect(50,
              60.41667,
              18,
              41.66667,
              rx=0,
              ry=0,
              fillColor=Color(1, 0, 0, 1),
              fillOpacity=None,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Rect(50,
              122.9167,
              60,
              41.66667,
              rx=0,
              ry=0,
              fillColor=Color(1, 0, 0, 1),
              fillOpacity=None,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(49,
              50,
              49,
              175,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(49,
              50,
              44,
              50,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(49,
              112.5,
              44,
              112.5,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(49,
              175,
              44,
              175,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 44, 81.25)
     v0.add(
         String(-20,
                -4,
                'Ying',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 44, 143.75)
     v0.add(
         String(-21.66,
                -4,
                'Yang',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     self.add(
         Line(50,
              50,
              350,
              50,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(80,
              50,
              80,
              45,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(170,
              50,
              170,
              45,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(260,
              50,
              260,
              45,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(350,
              50,
              350,
              45,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 80, 45)
     v0.add(
         String(-5,
                -10,
                '15',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 170, 45)
     v0.add(
         String(-5,
                -10,
                '30',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 260, 45)
     v0.add(
         String(-5,
                -10,
                '45',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 350, 45)
     v0.add(
         String(-5,
                -10,
                '60',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
    def _draw_labels(self, cur_drawing, left_labels, right_labels):
        """Layout and draw sub-feature labels for the chromosome (PRIVATE).

        Tries to place each label at the same vertical position as the
        feature it applies to, but will adjust the positions to avoid or
        at least reduce label overlap.

        Draws the label text and a coloured line linking it to the
        location (i.e. feature) it applies to.
        """
        if not self._sub_components:
            return
        color_label = self._color_labels

        segment_width = (self.end_x_position -
                         self.start_x_position) * self.chr_percent
        label_sep = (self.end_x_position -
                     self.start_x_position) * self.label_sep_percent
        segment_x = self.start_x_position + 0.5 * (
            self.end_x_position - self.start_x_position - segment_width)

        y_limits = []
        for sub_component in self._sub_components:
            y_limits.extend(
                (sub_component.start_y_position, sub_component.end_y_position))
        y_min = min(y_limits)
        y_max = max(y_limits)
        del y_limits
        # Now do some label placement magic...
        # from reportlab.pdfbase import pdfmetrics
        # font = pdfmetrics.getFont('Helvetica')
        # h = (font.face.ascent + font.face.descent) * 0.90
        h = self.label_size
        for x1, x2, labels, anchor in [
            (
                segment_x,
                segment_x - label_sep,
                _place_labels(left_labels, y_min, y_max, h),
                "end",
            ),
            (
                segment_x + segment_width,
                segment_x + segment_width + label_sep,
                _place_labels(right_labels, y_min, y_max, h),
                "start",
            ),
        ]:
            for (y1, y2, color, back_color, name) in labels:
                cur_drawing.add(
                    Line(x1, y1, x2, y2, strokeColor=color, strokeWidth=0.25))
                label_string = String(x2, y2, name, textAnchor=anchor)
                label_string.fontName = "Helvetica"
                label_string.fontSize = h
                if color_label:
                    label_string.fillColor = color
                if back_color:
                    w = stringWidth(name, label_string.fontName,
                                    label_string.fontSize)
                    if x1 > x2:
                        w = w * -1.0
                    cur_drawing.add(
                        Rect(
                            x2,
                            y2 - 0.1 * h,
                            w,
                            h,
                            strokeColor=back_color,
                            fillColor=back_color,
                        ))
                cur_drawing.add(label_string)
Exemplo n.º 7
0
    def _overdraw_subcomponents(self, cur_drawing):
        """Draw any annotated features on the chromosome segment.

        Assumes _draw_segment already called to fill out the basic shape,
        and assmes that uses the same boundaries.
        """
        # set the coordinates of the segment -- it'll take up the MIDDLE part
        # of the space we have.
        segment_y = self.end_y_position
        segment_width = (self.end_x_position - self.start_x_position) \
            * self.chr_percent
        label_sep = (self.end_x_position - self.start_x_position) \
            * self.label_sep_percent
        segment_height = self.start_y_position - self.end_y_position
        segment_x = self.start_x_position \
            + 0.5 * (self.end_x_position - self.start_x_position - segment_width)

        left_labels = []
        right_labels = []
        for f in self.features:
            try:
                # Assume SeqFeature objects
                start = f.location.start
                end = f.location.end
                strand = f.strand
                try:
                    # Handles Artemis colour integers, HTML colors, etc
                    color = _color_trans.translate(f.qualifiers['color'][0])
                except Exception:  # TODO: ValueError?
                    color = self.default_feature_color
                fill_color = color
                name = ""
                for qualifier in self.name_qualifiers:
                    if qualifier in f.qualifiers:
                        name = f.qualifiers[qualifier][0]
                        break
            except AttributeError:
                # Assume tuple of ints, string, and color
                start, end, strand, name, color = f[:5]
                color = _color_trans.translate(color)
                if len(f) > 5:
                    fill_color = _color_trans.translate(f[5])
                else:
                    fill_color = color
            assert 0 <= start <= end <= self.bp_length
            if strand == +1:
                # Right side only
                x = segment_x + segment_width * 0.6
                w = segment_width * 0.4
            elif strand == -1:
                # Left side only
                x = segment_x
                w = segment_width * 0.4
            else:
                # Both or neither - full width
                x = segment_x
                w = segment_width
            local_scale = segment_height / self.bp_length
            fill_rectangle = Rect(
                x, segment_y + segment_height - local_scale * start, w,
                local_scale * (start - end))
            fill_rectangle.fillColor = fill_color
            fill_rectangle.strokeColor = color
            cur_drawing.add(fill_rectangle)
            if name:
                if fill_color == color:
                    back_color = None
                else:
                    back_color = fill_color
                value = (segment_y + segment_height - local_scale * start,
                         color, back_color, name)
                if strand == -1:
                    self._left_labels.append(value)
                else:
                    self._right_labels.append(value)
 def __init__(self, width=400, height=200, *args, **kw):
     Drawing.__init__(self, width, height, *args, **kw)
     self.transform = (1, 0, 0, 1, 0, 0)
     self.add(
         Rect(50,
              50,
              300,
              125,
              rx=0,
              ry=0,
              fillColor=None,
              fillOpacity=None,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Rect(75,
              67.85714,
              100,
              23.21429,
              rx=0,
              ry=0,
              fillColor=Color(1, 0, 0, 1),
              fillOpacity=None,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Rect(225,
              67.85714,
              100,
              35.71429,
              rx=0,
              ry=0,
              fillColor=Color(1, 0, 0, 1),
              fillOpacity=None,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(50,
              49,
              350,
              49,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(50,
              49,
              50,
              44,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(200,
              49,
              200,
              44,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(350,
              49,
              350,
              44,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 125, 44)
     v0.add(
         String(-10,
                -10,
                'Ying',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 275, 44)
     v0.add(
         String(-10.83,
                -10,
                'Yang',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     self.add(
         Line(50,
              50,
              50,
              175,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(50,
              67.85714,
              45,
              67.85714,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(50,
              94.64286,
              45,
              94.64286,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(50,
              121.4286,
              45,
              121.4286,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(50,
              148.2143,
              45,
              148.2143,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(50,
              175,
              45,
              175,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 45, 67.85714)
     v0.add(
         String(-5,
                -4,
                '0',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 45, 94.64286)
     v0.add(
         String(-10,
                -4,
                '15',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 45, 121.4286)
     v0.add(
         String(-10,
                -4,
                '30',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 45, 148.2143)
     v0.add(
         String(-10,
                -4,
                '45',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 45, 175)
     v0.add(
         String(-10,
                -4,
                '60',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
from reportlab.graphics.charts.lineplots import SimpleTimeSeriesPlot
from reportlab.graphics.charts.legends import Legend
from reportlab.graphics.charts.piecharts import Pie
from reportlab.lib.colors import PCMYKColor, HexColor
from reportlab.graphics.shapes import Drawing, _DrawingEditorMixin, Rect

if __name__ == "__main__":


    c = canvas.Canvas("report.pdf", pagesize=letter)
    # move the origin up and to the left
    #c.translate(inch,inch)
    #c.setFillColorRGB(1,0,1)

    headerCanvas = Drawing()
    headerRect = Rect(0, 0, width=650, height=50)
    headerRect.fillColor = HexColor("#607D8B")
    headerRect.strokeColor = HexColor("#607D8B")
    headerCanvas.add(headerRect)
    renderPDF.draw(headerCanvas, c, 0, 750)


    c.drawImage("kit-logo.png", 50, 650, width=100, height=100)

    headerText = c.beginText(200, 750)
    headerText.textLine("Header Test Text")
    c.drawText(headerText)

    chartCanvas = Drawing()
    chartCanvas.hAlign = 'CENTER'
    chart = SimpleTimeSeriesPlot()
Exemplo n.º 10
0
 def rect(self,x,y,w,h,**kw):
     self._Gadd(Rect(self.x+x,self.y+y,w,h,
                 strokeColor=self.barStrokeColor,strokeWidth=self.barStrokeWidth, fillColor=self.barFillColor))
Exemplo n.º 11
0
 def _Square(self):
     x, y = self.x+self.dx, self.y+self.dy
     d = self.size/2.0
     s = Rect(x-d,y-d,2*d,2*d,fillColor=self.fillColor,strokeColor=self.strokeColor,strokeWidth=self.strokeWidth)
     return s
Exemplo n.º 12
0
 def __init__(self, width=756.284, height=240.20000000000002, *args, **kw):
     Drawing.__init__(self, width, height, *args, **kw)
     self.transform = (1, 0, 0, 1, 0, 0)
     self.add(
         Rect(8,
              208.4,
              569.068,
              24.4,
              rx=0,
              ry=0,
              fillColor=Color(.827451, .827451, .827451, 1),
              fillOpacity=None,
              strokeColor=Color(1, 0, 0, 1),
              strokeWidth=.5,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         String(
             10,
             215.8,
             'Times-Roman: I should be totally horizontal and enclosed in a box and end in alphabetagamma ¢©®£ʥЖփאقকαβγ',
             textAnchor='start',
             fontName='Times-Roman',
             fontSize=12,
             fillColor=Color(0, 0, 0, 1)))
     self.add(
         Rect(8,
              179,
              631.832,
              24.4,
              rx=0,
              ry=0,
              fillColor=Color(.827451, .827451, .827451, 1),
              fillOpacity=None,
              strokeColor=Color(1, 0, 0, 1),
              strokeWidth=.5,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         String(
             10,
             186.4,
             'Vera: I should be totally horizontal and enclosed in a box and end in alphabetagamma ¢©®£ʥЖփאقকαβγ',
             textAnchor='start',
             fontName='Vera',
             fontSize=12,
             fillColor=Color(0, 0, 0, 1)))
     self.add(
         Rect(8,
              149.6,
              598.216,
              24.4,
              rx=0,
              ry=0,
              fillColor=Color(.827451, .827451, .827451, 1),
              fillOpacity=None,
              strokeColor=Color(1, 0, 0, 1),
              strokeWidth=.5,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         String(
             10,
             157,
             'Times-BoldItalic: I should be totally horizontal and enclosed in a box and end in alphabetagamma ¢©®£ʥЖփאقকαβγ',
             textAnchor='start',
             fontName='Times-BoldItalic',
             fontSize=12,
             fillColor=Color(0, 0, 0, 1)))
     self.add(
         Rect(8,
              120.2,
              740.284,
              24.4,
              rx=0,
              ry=0,
              fillColor=Color(.827451, .827451, .827451, 1),
              fillOpacity=None,
              strokeColor=Color(1, 0, 0, 1),
              strokeWidth=.5,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         String(
             10,
             127.6,
             'Courier: I should be totally horizontal and enclosed in a box and end in alphabetagamma ¢©®£ʥЖփאقকαβγ',
             textAnchor='start',
             fontName='Courier',
             fontSize=12,
             fillColor=Color(0, 0, 0, 1)))
     self.add(
         Rect(8,
              90.8,
              592.504,
              24.4,
              rx=0,
              ry=0,
              fillColor=Color(.827451, .827451, .827451, 1),
              fillOpacity=None,
              strokeColor=Color(1, 0, 0, 1),
              strokeWidth=.5,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         String(
             10,
             98.2,
             'Helvetica: I should be totally horizontal and enclosed in a box and end in alphabetagamma ¢©®£ʥЖփאقকαβγ',
             textAnchor='start',
             fontName='Helvetica',
             fontSize=12,
             fillColor=Color(0, 0, 0, 1)))
     self.add(
         Rect(8,
              61.4,
              716.459,
              24.4,
              rx=0,
              ry=0,
              fillColor=Color(.827451, .827451, .827451, 1),
              fillOpacity=None,
              strokeColor=Color(1, 0, 0, 1),
              strokeWidth=.5,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         String(
             10,
             68.8,
             'VeraBd: I should be totally horizontal and enclosed in a box and end in alphabetagamma ¢©®£ʥЖփאقকαβγ',
             textAnchor='start',
             fontName='VeraBd',
             fontSize=12,
             fillColor=Color(0, 0, 0, 1)))
     self.add(
         Rect(8,
              32,
              640.0762,
              24.4,
              rx=0,
              ry=0,
              fillColor=Color(.827451, .827451, .827451, 1),
              fillOpacity=None,
              strokeColor=Color(1, 0, 0, 1),
              strokeWidth=.5,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         String(
             10,
             39.4,
             'VeraIt: I should be totally horizontal and enclosed in a box and end in alphabetagamma ¢©®£ʥЖփאقকαβγ',
             textAnchor='start',
             fontName='VeraIt',
             fontSize=12,
             fillColor=Color(0, 0, 0, 1)))
     self.add(
         Rect(8,
              2.6,
              712.334,
              24.4,
              rx=0,
              ry=0,
              fillColor=Color(.827451, .827451, .827451, 1),
              fillOpacity=None,
              strokeColor=Color(1, 0, 0, 1),
              strokeWidth=.5,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         String(
             10,
             10,
             'VeraBI: I should be totally horizontal and enclosed in a box and end in alphabetagamma ¢©®£ʥЖփאقকαβγ',
             textAnchor='start',
             fontName='VeraBI',
             fontSize=12,
             fillColor=Color(0, 0, 0, 1)))
Exemplo n.º 13
0
 def rect(self, x, y, w, h, fill=1, stroke=0):
     self._gadd(
         Rect(x, y, w, h, strokeColor=None, fillColor=self._fillColor))
Exemplo n.º 14
0
    def _rawDraw(self):
        _text = self._text
        self._text = _text or ''
        self.computeSize()
        self._text = _text
        g = Group()
        g.translate(self.x + self.dx, self.y + self.dy)
        g.rotate(self.angle)

        ddfKlass = getattr(self,'ddfKlass',None)
        if ddfKlass:
            x = self._left
        else:
            y = self._top - self._leading*self._baselineRatio
            textAnchor = self._getTextAnchor()
            if textAnchor == 'start':
                x = self._left
            elif textAnchor == 'middle':
                x = self._left + self._ewidth*0.5
            else:
                x = self._right

        # paint box behind text just in case they
        # fill it
        if self.boxFillColor or (self.boxStrokeColor and self.boxStrokeWidth):
            g.add(Rect( self._left-self.leftPadding,
                        self._bottom-self.bottomPadding,
                        self._width,
                        self._height,
                        strokeColor=self.boxStrokeColor,
                        strokeWidth=self.boxStrokeWidth,
                        fillColor=self.boxFillColor)
                        )

        if ddfKlass:
            g1 = Group()
            g1.translate(x,self._top-self._eheight)
            g1.add(self.ddf(self._ddfObj))
            g.add(g1)
        else:
            fillColor, fontName, fontSize = self.fillColor, self.fontName, self.fontSize
            strokeColor, strokeWidth, leading = self.strokeColor, self.strokeWidth, self._leading
            svgAttrs=getattr(self,'_svgAttrs',{})
            if strokeColor:
                for line in self._lines:
                    s = _text2Path(line, x, y, fontName, fontSize, textAnchor)
                    s.fillColor = fillColor
                    s.strokeColor = strokeColor
                    s.strokeWidth = strokeWidth
                    g.add(s)
                    y -= leading
            else:
                for line in self._lines:
                    s = String(x, y, line, _svgAttrs=svgAttrs)
                    s.textAnchor = textAnchor
                    s.fontName = fontName
                    s.fontSize = fontSize
                    s.fillColor = fillColor
                    g.add(s)
                    y -= leading

        return g
Exemplo n.º 15
0
    def draw(self):
        fillColor = self.fillColor
        strokeColor = self.strokeColor

        g = Group()
        g.add(
            Rect(x=0,
                 y=0,
                 fillColor=self.fillColor,
                 strokeColor=self.fillColor,
                 width=self.borderWidth,
                 height=self.height))
        g.add(
            Rect(x=0,
                 y=self.height - self.borderWidth,
                 fillColor=self.fillColor,
                 strokeColor=self.fillColor,
                 width=self.width,
                 height=self.borderWidth))

        g2 = Group()
        rl = RL_CorpLogo()
        rl.height = 1.25 * cm
        rl.width = 1.9 * cm
        rl.draw()
        g2.add(rl)
        g.add(g2)
        g2.shift(x=(self.width - (rl.width + (self.width / 42))),
                 y=(self.height - (rl.height + (self.height / 42))))

        g.add(
            String(x=self.borderWidth / 5.0,
                   y=((self.height - (rl.height + (self.height / 42))) +
                      ((38 / 90.5) * rl.height)),
                   fontSize=6,
                   fillColor=self.altStrokeColor,
                   fontName="Helvetica-BoldOblique",
                   textAnchor='start',
                   text=self._strapline))

        leftText = ["Tel:", "Mobile:", "Fax:", "Email:", "Web:"]
        leftDetails = [
            self.telephone, self.mobile, self.fax, self.email, self.web
        ]
        leftText.reverse()
        leftDetails.reverse()
        for f in range(len(leftText), 0, -1):
            g.add(
                String(x=self.borderWidth + (self.borderWidth / 5.0),
                       y=(self.borderWidth / 5.0) + ((f - 1) * (5 * 1.2)),
                       fontSize=5,
                       fillColor=self.strokeColor,
                       fontName="Helvetica",
                       textAnchor='start',
                       text=leftText[f - 1]))
            g.add(
                String(x=self.borderWidth + (self.borderWidth / 5.0) +
                       self.borderWidth,
                       y=(self.borderWidth / 5.0) + ((f - 1) * (5 * 1.2)),
                       fontSize=5,
                       fillColor=self.strokeColor,
                       fontName="Helvetica",
                       textAnchor='start',
                       text=leftDetails[f - 1]))

        ty = (self.height - self.borderWidth - (self.borderWidth / 5.0) + 2)
        #       g.add(Line(self.borderWidth, ty, self.borderWidth+(self.borderWidth/5.0), ty))
        #       g.add(Line(self.borderWidth+(self.borderWidth/5.0), ty, self.borderWidth+(self.borderWidth/5.0),
        #                         ty+(self.borderWidth/5.0)))
        #       g.add(Line(self.borderWidth, ty-10,
        #                         self.borderWidth+(self.borderWidth/5.0), ty-10))

        rightText = self.rh_blurb_top
        for f in range(1, (len(rightText) + 1)):
            g.add(
                String(x=self.width - (self.borderWidth / 5.0),
                       y=ty - ((f) * (5 * 1.2)),
                       fontSize=5,
                       fillColor=self.strokeColor,
                       fontName="Helvetica",
                       textAnchor='end',
                       text=rightText[f - 1]))

        g.add(
            String(x=self.borderWidth + (self.borderWidth / 5.0),
                   y=ty - 10,
                   fontSize=10,
                   fillColor=self.strokeColor,
                   fontName="Helvetica",
                   textAnchor='start',
                   text=self.name))

        ty1 = ty - 10 * 1.2

        g.add(
            String(x=self.borderWidth + (self.borderWidth / 5.0),
                   y=ty1 - 8,
                   fontSize=8,
                   fillColor=self.strokeColor,
                   fontName="Helvetica",
                   textAnchor='start',
                   text=self.position))
        if self.border:
            g.add(
                Rect(x=0,
                     y=0,
                     fillColor=None,
                     strokeColor=black,
                     width=self.width,
                     height=self.height))
        g.shift(self.x, self.y)
        return g
Exemplo n.º 16
0
 def __init__(self, width=400, height=200, *args, **kw):
     Drawing.__init__(self, width, height, *args, **kw)
     self.transform = (1, 0, 0, 1, 0, 0)
     self.add(
         Rect(50,
              50,
              300,
              125,
              rx=0,
              ry=0,
              fillColor=None,
              fillOpacity=None,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Rect(53.75,
              50,
              15,
              27.08333,
              rx=0,
              ry=0,
              fillColor=Color(1, 0, 0, 1),
              fillOpacity=None,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Rect(91.25,
              50,
              15,
              10.41667,
              rx=0,
              ry=0,
              fillColor=Color(1, 0, 0, 1),
              fillOpacity=None,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Rect(128.75,
              50,
              15,
              41.66667,
              rx=0,
              ry=0,
              fillColor=Color(1, 0, 0, 1),
              fillOpacity=None,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Rect(166.25,
              50,
              15,
              45.83333,
              rx=0,
              ry=0,
              fillColor=Color(1, 0, 0, 1),
              fillOpacity=None,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Rect(203.75,
              50,
              15,
              77.08333,
              rx=0,
              ry=0,
              fillColor=Color(1, 0, 0, 1),
              fillOpacity=None,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Rect(241.25,
              50,
              15,
              93.75,
              rx=0,
              ry=0,
              fillColor=Color(1, 0, 0, 1),
              fillOpacity=None,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Rect(278.75,
              50,
              15,
              39.58333,
              rx=0,
              ry=0,
              fillColor=Color(1, 0, 0, 1),
              fillOpacity=None,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Rect(316.25,
              50,
              15,
              8.333333,
              rx=0,
              ry=0,
              fillColor=Color(1, 0, 0, 1),
              fillOpacity=None,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Rect(68.75,
              50,
              15,
              29.16667,
              rx=0,
              ry=0,
              fillColor=Color(0, .501961, 0, 1),
              fillOpacity=None,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Rect(106.25,
              50,
              15,
              12.5,
              rx=0,
              ry=0,
              fillColor=Color(0, .501961, 0, 1),
              fillOpacity=None,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Rect(143.75,
              50,
              15,
              43.75,
              rx=0,
              ry=0,
              fillColor=Color(0, .501961, 0, 1),
              fillOpacity=None,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Rect(181.25,
              50,
              15,
              47.91667,
              rx=0,
              ry=0,
              fillColor=Color(0, .501961, 0, 1),
              fillOpacity=None,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Rect(218.75,
              50,
              15,
              79.16667,
              rx=0,
              ry=0,
              fillColor=Color(0, .501961, 0, 1),
              fillOpacity=None,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Rect(256.25,
              50,
              15,
              95.83333,
              rx=0,
              ry=0,
              fillColor=Color(0, .501961, 0, 1),
              fillOpacity=None,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Rect(293.75,
              50,
              15,
              41.66667,
              rx=0,
              ry=0,
              fillColor=Color(0, .501961, 0, 1),
              fillOpacity=None,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Rect(331.25,
              50,
              15,
              10.41667,
              rx=0,
              ry=0,
              fillColor=Color(0, .501961, 0, 1),
              fillOpacity=None,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(50,
              49,
              350,
              49,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(50,
              49,
              50,
              44,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(87.5,
              49,
              87.5,
              44,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(125,
              49,
              125,
              44,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(162.5,
              49,
              162.5,
              44,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(200,
              49,
              200,
              44,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(237.5,
              49,
              237.5,
              44,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(275,
              49,
              275,
              44,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(312.5,
              49,
              312.5,
              44,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(350,
              49,
              350,
              44,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     v0 = self._nn(Group())
     v0.transform = (.866025, .5, -0.5, .866025, 76.75, 47)
     v0.add(
         String(-26.66,
                -10,
                'Jan-99',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (.866025, .5, -0.5, .866025, 114.25, 47)
     v0.add(
         String(-28.33,
                -10,
                'Feb-99',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (.866025, .5, -0.5, .866025, 151.75, 47)
     v0.add(
         String(-29.99,
                -10,
                'Mar-99',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (.866025, .5, -0.5, .866025, 189.25, 47)
     v0.add(
         String(-28.88,
                -10,
                'Apr-99',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (.866025, .5, -0.5, .866025, 226.75, 47)
     v0.add(
         String(-31.66,
                -10,
                'May-99',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (.866025, .5, -0.5, .866025, 264.25, 47)
     v0.add(
         String(-27.22,
                -10,
                'Jun-99',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (.866025, .5, -0.5, .866025, 301.75, 47)
     v0.add(
         String(-25,
                -10,
                'Jul-99',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (.866025, .5, -0.5, .866025, 339.25, 47)
     v0.add(
         String(-30.55,
                -10,
                'Aug-99',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     self.add(
         Line(50,
              50,
              50,
              175,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(50,
              50,
              45,
              50,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(50,
              81.25,
              45,
              81.25,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(50,
              112.5,
              45,
              112.5,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(50,
              143.75,
              45,
              143.75,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(50,
              175,
              45,
              175,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 45, 50)
     v0.add(
         String(-5,
                -4,
                '0',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 45, 81.25)
     v0.add(
         String(-10,
                -4,
                '15',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 45, 112.5)
     v0.add(
         String(-10,
                -4,
                '30',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 45, 143.75)
     v0.add(
         String(-10,
                -4,
                '45',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 45, 175)
     v0.add(
         String(-10,
                -4,
                '60',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
Exemplo n.º 17
0
 def __init__(self,width=600.0,height=200.0,fillMode='even-odd',*args,**kw):
     Drawing.__init__(self,width,height,*args,**kw)
     self.transform = (1,0,0,1,0,0)
     v0=self._nn(Group())
     v0.transform = (1,0,0,-1,0,200)
     v0.add(Rect(1,1,599,199,rx=0,ry=0,strokeDashArray=None,strokeWidth=2,strokeMiterLimit=0,strokeOpacity=None,strokeLineJoin=0,fillOpacity=1,strokeColor=Color(0,0,1,1),strokeLineCap=0,fillColor=None))
     v1=v0._nn(Group())
     v1.transform = (.5,0,0,.5,0,0)
     v1.add(Path(points=[250,75,323,301,131,161,369,161,177,301],operators=[0,1,1,1,1,3],isClipPath=0,autoclose='svg',fillMode=fillMode,strokeDashArray=None,strokeWidth=3,strokeMiterLimit=0,strokeOpacity=None,strokeLineJoin=0,fillOpacity=1,strokeColor=Color(0,0,0,1),strokeLineCap=0,fillColor=Color(1,0,0,1)))
     v2=v1._nn(Group())
     v2.transform = (.309017,.951057,-0.951057,.309017,306.21,249)
     v2.add(Path(points=[16,0,-8,9,-8,-9],operators=[0,1,1,3],isClipPath=0,autoclose='svg',fillMode=1,strokeDashArray=None,strokeWidth=1,strokeMiterLimit=0,strokeOpacity=None,strokeLineJoin=0,fillColor=Color(0,0,0,1),strokeColor=None,strokeLineCap=0,fillOpacity=1))
     v2=v1._nn(Group())
     v2.transform = (-0.809017,-0.587785,.587785,-0.809017,175.16,193.2)
     v2.add(Path(points=[16,0,-8,9,-8,-9],operators=[0,1,1,3],isClipPath=0,autoclose='svg',fillMode=1,strokeDashArray=None,strokeWidth=1,strokeMiterLimit=0,strokeOpacity=None,strokeLineJoin=0,fillColor=Color(0,0,0,1),strokeColor=None,strokeLineCap=0,fillOpacity=1))
     v2=v1._nn(Group())
     v2.transform = (1,0,0,1,314.26,161)
     v2.add(Path(points=[16,0,-8,9,-8,-9],operators=[0,1,1,3],isClipPath=0,autoclose='svg',fillMode=1,strokeDashArray=None,strokeWidth=1,strokeMiterLimit=0,strokeOpacity=None,strokeLineJoin=0,fillColor=Color(0,0,0,1),strokeColor=None,strokeLineCap=0,fillOpacity=1))
     v2=v1._nn(Group())
     v2.transform = (-0.809017,.587785,-0.587785,-0.809017,221.16,268.8)
     v2.add(Path(points=[16,0,-8,9,-8,-9],operators=[0,1,1,3],isClipPath=0,autoclose='svg',fillMode=1,strokeDashArray=None,strokeWidth=1,strokeMiterLimit=0,strokeOpacity=None,strokeLineJoin=0,fillColor=Color(0,0,0,1),strokeColor=None,strokeLineCap=0,fillOpacity=1))
     v2=v1._nn(Group())
     v2.transform = (.309017,-0.951057,.951057,.309017,233.21,126.98)
     v2.add(Path(points=[16,0,-8,9,-8,-9],operators=[0,1,1,3],isClipPath=0,autoclose='svg',fillMode=1,strokeDashArray=None,strokeWidth=1,strokeMiterLimit=0,strokeOpacity=None,strokeLineJoin=0,fillColor=Color(0,0,0,1),strokeColor=None,strokeLineCap=0,fillOpacity=1))
     v1.add(Path(points=[600,81,659.0945,81,707,128.9055,707,188,707,247.0945,659.0945,295,600,295,540.9055,295,493,247.0945,493,188,493,128.9055,540.9055,81,600,81,600,139,627.062,139,649,160.938,649,188,649,215.062,627.062,237,600,237,572.938,237,551,215.062,551,188,551,160.938,572.938,139,600,139],operators=[0,2,2,2,2,3,0,2,2,2,2,3],isClipPath=0,autoclose='svg',fillMode=fillMode,strokeDashArray=None,strokeWidth=3,strokeMiterLimit=0,strokeOpacity=None,strokeLineJoin=0,fillOpacity=1,strokeColor=Color(0,0,0,1),strokeLineCap=0,fillColor=Color(1,0,0,1)))
     v2=v1._nn(Group())
     v2.transform = (0,1,-1,0,707,188)
     v2.add(Path(points=[16,0,-8,9,-8,-9],operators=[0,1,1,3],isClipPath=0,autoclose='svg',fillMode=1,strokeDashArray=None,strokeWidth=1,strokeMiterLimit=0,strokeOpacity=None,strokeLineJoin=0,fillColor=Color(0,0,0,1),strokeColor=None,strokeLineCap=0,fillOpacity=1))
     v2=v1._nn(Group())
     v2.transform = (-0.866025,-0.5,.5,-0.866025,546.5,280.6647)
     v2.add(Path(points=[16,0,-8,9,-8,-9],operators=[0,1,1,3],isClipPath=0,autoclose='svg',fillMode=1,strokeDashArray=None,strokeWidth=1,strokeMiterLimit=0,strokeOpacity=None,strokeLineJoin=0,fillColor=Color(0,0,0,1),strokeColor=None,strokeLineCap=0,fillOpacity=1))
     v2=v1._nn(Group())
     v2.transform = (.866025,-0.5,.5,.866025,546.5,95.33528)
     v2.add(Path(points=[16,0,-8,9,-8,-9],operators=[0,1,1,3],isClipPath=0,autoclose='svg',fillMode=1,strokeDashArray=None,strokeWidth=1,strokeMiterLimit=0,strokeOpacity=None,strokeLineJoin=0,fillColor=Color(0,0,0,1),strokeColor=None,strokeLineCap=0,fillOpacity=1))
     v2=v1._nn(Group())
     v2.transform = (-0.866025,.5,-0.5,-0.866025,624.5,230.4352)
     v2.add(Path(points=[16,0,-8,9,-8,-9],operators=[0,1,1,3],isClipPath=0,autoclose='svg',fillMode=1,strokeDashArray=None,strokeWidth=1,strokeMiterLimit=0,strokeOpacity=None,strokeLineJoin=0,fillColor=Color(0,0,0,1),strokeColor=None,strokeLineCap=0,fillOpacity=1))
     v2=v1._nn(Group())
     v2.transform = (0,-1,1,0,551,188)
     v2.add(Path(points=[16,0,-8,9,-8,-9],operators=[0,1,1,3],isClipPath=0,autoclose='svg',fillMode=1,strokeDashArray=None,strokeWidth=1,strokeMiterLimit=0,strokeOpacity=None,strokeLineJoin=0,fillColor=Color(0,0,0,1),strokeColor=None,strokeLineCap=0,fillOpacity=1))
     v2=v1._nn(Group())
     v2.transform = (.866025,.5,-0.5,.866025,624.5,145.5648)
     v2.add(Path(points=[16,0,-8,9,-8,-9],operators=[0,1,1,3],isClipPath=0,autoclose='svg',fillMode=1,strokeDashArray=None,strokeWidth=1,strokeMiterLimit=0,strokeOpacity=None,strokeLineJoin=0,fillColor=Color(0,0,0,1),strokeColor=None,strokeLineCap=0,fillOpacity=1))
     v1.add(Path(points=[950,81,1009.094,81,1057,128.9055,1057,188,1057,247.0945,1009.094,295,950,295,890.9055,295,843,247.0945,843,188,843,128.9055,890.9055,81,950,81,950,139,922.938,139,901,160.938,901,188,901,215.062,922.938,237,950,237,977.062,237,999,215.062,999,188,999,160.938,977.062,139,950,139],operators=[0,2,2,2,2,3,0,2,2,2,2,3],isClipPath=0,autoclose='svg',fillMode=fillMode,strokeDashArray=None,strokeWidth=3,strokeMiterLimit=0,strokeOpacity=None,strokeLineJoin=0,fillOpacity=1,strokeColor=Color(0,0,0,1),strokeLineCap=0,fillColor=Color(1,0,0,1)))
     v2=v1._nn(Group())
     v2.transform = (0,1,-1,0,1057,188)
     v2.add(Path(points=[16,0,-8,9,-8,-9],operators=[0,1,1,3],isClipPath=0,autoclose='svg',fillMode=1,strokeDashArray=None,strokeWidth=1,strokeMiterLimit=0,strokeOpacity=None,strokeLineJoin=0,fillColor=Color(0,0,0,1),strokeColor=None,strokeLineCap=0,fillOpacity=1))
     v2=v1._nn(Group())
     v2.transform = (-0.866025,-0.5,.5,-0.866025,896.5,280.6647)
     v2.add(Path(points=[16,0,-8,9,-8,-9],operators=[0,1,1,3],isClipPath=0,autoclose='svg',fillMode=1,strokeDashArray=None,strokeWidth=1,strokeMiterLimit=0,strokeOpacity=None,strokeLineJoin=0,fillColor=Color(0,0,0,1),strokeColor=None,strokeLineCap=0,fillOpacity=1))
     v2=v1._nn(Group())
     v2.transform = (.866025,-0.5,.5,.866025,896.5,95.33528)
     v2.add(Path(points=[16,0,-8,9,-8,-9],operators=[0,1,1,3],isClipPath=0,autoclose='svg',fillMode=1,strokeDashArray=None,strokeWidth=1,strokeMiterLimit=0,strokeOpacity=None,strokeLineJoin=0,fillColor=Color(0,0,0,1),strokeColor=None,strokeLineCap=0,fillOpacity=1))
     v2=v1._nn(Group())
     v2.transform = (.866025,-0.5,.5,.866025,974.5,230.4352)
     v2.add(Path(points=[16,0,-8,9,-8,-9],operators=[0,1,1,3],isClipPath=0,autoclose='svg',fillMode=1,strokeDashArray=None,strokeWidth=1,strokeMiterLimit=0,strokeOpacity=None,strokeLineJoin=0,fillColor=Color(0,0,0,1),strokeColor=None,strokeLineCap=0,fillOpacity=1))
     v2=v1._nn(Group())
     v2.transform = (0,1,-1,0,901,188)
     v2.add(Path(points=[16,0,-8,9,-8,-9],operators=[0,1,1,3],isClipPath=0,autoclose='svg',fillMode=1,strokeDashArray=None,strokeWidth=1,strokeMiterLimit=0,strokeOpacity=None,strokeLineJoin=0,fillColor=Color(0,0,0,1),strokeColor=None,strokeLineCap=0,fillOpacity=1))
     v2=v1._nn(Group())
     v2.transform = (-0.866025,-0.5,.5,-0.866025,974.5,145.5648)
     v2.add(Path(points=[16,0,-8,9,-8,-9],operators=[0,1,1,3],isClipPath=0,autoclose='svg',fillMode=1,strokeDashArray=None,strokeWidth=1,strokeMiterLimit=0,strokeOpacity=None,strokeLineJoin=0,fillColor=Color(0,0,0,1),strokeColor=None,strokeLineCap=0,fillOpacity=1))
Exemplo n.º 18
0
      ('LINEBELOW', (0, 0), (-1, 0), 1, colors.purple),
      ('FONT', (0, 0), (-1, 0), 'Times-Bold'),
      ('LINEABOVE', (0, -1), (-1, -1), 1, colors.purple),
      ('LINEBELOW', (0, -1), (-1, -1), 0.5, colors.purple, 1, None, None, 4,
       1), ('LINEBELOW', (0, -1), (-1, -1), 1, colors.red),
      ('FONT', (0, -1), (-1, -1), 'Times-Bold'),
      ('BACKGROUND', (1, 1), (-2, -2), colors.green),
      ('TEXTCOLOR', (0, 0), (1, -1), colors.red)]

table = Table(lista, style=ts)
elements.append(table)

d = Drawing(20, 20)
d.add(Circle(10, 10, 5, strokeColor="#FF0000", fillColor='#FF0000'))
d.background = Rect(0,
                    0,
                    20,
                    20,
                    strokeWidth=0.25,
                    strokeColor="#868686",
                    fillColor=None)

table2 = Table([['AAA', d]] * 10,
               style=[('INNERGRID', (0, 0), (-1, -1), 0.25, colors.black),
                      ('BOX', (0, 0), (-1, -1), 0.25, colors.black)])

elements.append(table2)

doc = SimpleDocTemplate(PATH_OUT + 'Report_File.pdf')
doc.build(elements)
Exemplo n.º 19
0
    def __init__(self,
                 series_colors_cmyk,
                 box_width,
                 box_height,
                 chart_width,
                 chart_height,
                 width=550,
                 height=215,
                 *args,
                 **kw):
        Drawing.__init__(self, width, height, *args, **kw)
        Drawing.hAlign = 'CENTER'

        font_name = 'Helvetica'
        # self.width = 550
        # self.height = 240
        self.width = box_width
        self.height = box_height
        self._add(self, LinePlot(), name='chart', validate=None, desc=None)
        self._add(self, LineLegend(), name='legend', validate=None, desc=None)

        # self.chart.width = 490
        # self.chart.height = 150
        self.chart.width = chart_width
        self.chart.height = chart_height
        self.chart.y = 60
        self.chart.x = 45
        self.chart.strokeWidth = 1

        for color in series_colors_cmyk:
            index = series_colors_cmyk.index(color)
            self.chart.lines[index].strokeColor = PCMYKColor(color[0],
                                                             color[1],
                                                             color[2],
                                                             color[3],
                                                             alpha=color[4])
            self.chart.lines[index].symbol = makeMarker('FilledCircle')
            self.chart.lines[index].symbol.strokeColor = PCMYKColor(
                color[0], color[1], color[2], color[3], alpha=color[4])
            self.chart.lines[index].symbol.size = 5
        self.chart.lines.strokeWidth = 2

        self.legend.colorNamePairs = Auto(obj=self.chart)
        self.legend.x = 35
        self.legend.y = 30
        # set size of swatches
        self.legend.dx = 0
        self.legend.dy = 0
        self.legend.fontName = font_name
        self.legend.fontSize = 8
        self.legend.alignment = 'right'
        self.legend.columnMaximum = 2
        self.legend.dxTextSpace = 5
        self.legend.variColumn = 1
        self.legend.boxAnchor = 'nw'
        self.legend.deltay = 15
        self.legend.autoXPadding = 20

        self.background = Rect(0,
                               0,
                               self.width,
                               self.height,
                               strokeWidth=0,
                               fillColor=PCMYKColor(0, 0, 10, 0))
        self.background.strokeColor = black
        self.background.fillOpacity = 0.25
        self.background.strokeWidth = 0
        self.background.x = 0
        self.background.fillColor = PCMYKColor(16, 12, 13, 0, alpha=30)
Exemplo n.º 20
0
def test3():
    wl = "select apply_id, tenant_name, sex, tenant_IDcode, marital_status, tenant_unit, tenant_unit_address, " + \
         "unit_property, unit_pro_business, unit_pro_office, unit_pro_employment, unit_pro_retire, unit_pro_other, " + \
         "pro_graduate, pro_outside, pro_gov_talent, pro_difficult, pro_cheap, pro_economy, card_address, " + \
         "now_address, minimum_living_no, member_name_1, member_relation_1, member_ID_1, member_unit_1, " + \
         "member_income_1, member_name_2, member_relation_2, member_ID_2, member_unit_2, member_income_2, " + \
         "member_name_3, member_relation_3, member_ID_3, member_unit_3, member_income_3, member_name_4, " + \
         "member_relation_4, member_ID_4, member_unit_4, member_income_4, member_name_5, member_relation_5, " + \
         "member_ID_5, member_unit_5, member_income_5, income_avg, income_all, member_name_11, member_address_11, " + \
         "member_con_area_11, member_door_pro_11, member_name_12, member_address_12, member_con_area_12, " + \
         "member_door_pro_12, is_transfer, transfer_address_1, transfer_con_area_1, is_remove, remove_address_1, " + \
         "remove_con_area_1, con_area_avg, user_name, occur_date, community_name, street_name, remark, " + \
         "transfer_pro_1, remove_pro_1 " + \
         "FROM t_public_doors_apply where apply_id = '001'"
    db = DB()
    apply, re_s = db.get_data_by_sql(wl)
    if len(apply) == 0:
        return 'not found'
    pdfmetrics.registerFont(TTFont('simsun', 'SimSun.ttf'))
    pdfmetrics.registerFont(TTFont('simhei', 'SimHei.ttf'))
    style_sheet = getSampleStyleSheet()
    # 标题
    title_style = style_sheet['Title']
    title_style.fontName = 'simhei'
    title_style.fontSize = 22
    # title_style = ParagraphStyle(name='titlestyle', fontName='simhei', fontSize=22, aligment=TA_CENTER)
    # title_stytle.fontWeight = 900
    elements = [Paragraph('立山区公共租赁租房(申请)审批表', title_style)]
    elements.append(Spacer(0, 0.3 * cm))
    # 标题下一行小字
    doc_style = ParagraphStyle(name='rightstyle', fontName='simsun', fontSize=10, alignment=TA_CENTER)
    line0 = Paragraph('编号:' + apply_id + '\0' * 32 + '单位:平方米,人,元', doc_style)
    elements.append(line0)
    elements.append(Spacer(0, 0.3 * cm))
    # 创建画布,画表格
    width, height = 19 * cm, 25 * cm;
    # 第一页开画
    d1 = Drawing(width, height)
    d1.background = Rect(0, 0, width, height, strokeWidth=1, strokeColor="#000000", fillColor=None)  # 边框颜色
    d1.add(Line(1.2 * cm, 24 * cm, width, 24 * cm, strokeWidth=0.5))
    d1.add(Line(1.2 * cm, 23 * cm, width, 23 * cm, strokeWidth=0.5))
    d1.add(Line(1.2 * cm, 22 * cm, width, 22 * cm, strokeWidth=0.5))
    d1.add(Line(1.2 * cm, 21 * cm, width, 21 * cm, strokeWidth=0.5))
    d1.add(Line(1.2 * cm, 19.5 * cm, width, 19.5 * cm, strokeWidth=0.5))
    d1.add(Line(1.2 * cm, 18 * cm, width, 18 * cm, strokeWidth=0.5))
    d1.add(Line(1.2 * cm, 17 * cm, width, 17 * cm, strokeWidth=0.5))
    d1.add(Line(0 * cm, 16 * cm, width, 16 * cm, strokeWidth=0.8))
    d1.add(Line(1.2 * cm, 25 * cm, 1.2 * cm, 8.8 * cm, strokeWidth=0.5))
    d1.add(Line(3.5 * cm, 25 * cm, 3.5 * cm, 0 * cm, strokeWidth=0.5))
    d1.add(Line(6.5 * cm, 25 * cm, 6.5 * cm, 24 * cm, strokeWidth=0.5))
    d1.add(Line(8.0 * cm, 25 * cm, 8.0 * cm, 24 * cm, strokeWidth=0.5))
    d1.add(Line(10 * cm, 25 * cm, 10 * cm, 24 * cm, strokeWidth=0.5))
    d1.add(Line(12 * cm, 25 * cm, 12 * cm, 24 * cm, strokeWidth=0.5))
    d1.add(Line(10 * cm, 23 * cm, 10 * cm, 22 * cm, strokeWidth=0.5))
    d1.add(Line(12 * cm, 23 * cm, 12 * cm, 22 * cm, strokeWidth=0.5))
    d1.add(get_label(x=2.25 * cm, y=24.5 *cm, text='姓名', size=10))
    d1.add(get_label(x=5 * cm, y=24.5 * cm, text=apply[0]['tenant_name'], size=10))
    d1.add(get_label(x=7.25 * cm, y=24.5 * cm, text='性别', size=10))
    d1.add(get_label(x=9 * cm, y=24.5 * cm, text=apply[0]['sex'], size=10))
    d1.add(get_label(x=11 * cm, y=24.5 * cm, text='身份证', size=10))
    d1.add(get_label(x=14.5 * cm, y=24.5 * cm, text=apply[0]['tenant_IDcode'], size=10))
    d1.add(get_label(x=2.25 * cm, y=23.5 * cm, text='婚姻状况', size=10))
    d1.add(get_label(x=4.5 * cm, y=23.5 * cm, text=apply[0]['marital_status'], size=10))
    d1.add(get_label(x=2.25 * cm, y=22.5 * cm, text='工作单位', size=10))
    d1.add(get_label(x=6.5 * cm, y=22.5 * cm, text=apply[0]['tenant_unit'], size=10))
    d1.add(get_label(x=11 * cm, y=22.5 * cm, text='单位地址', size=10))
    d1.add(get_label(x=15.5 * cm, y=22.5 * cm, text=apply[0]['tenant_unit_address'], size=10))

    d1.add(get_label(x=2.25 * cm, y=21.5 * cm, text='单位性质', size=10))
    unit_pro = ''
    if int(apply[0]['unit_pro_business']) == 1:
        unit_pro += '企业 '
    if int(apply[0]['unit_pro_office']) == 1:
        unit_pro += '机关 '
    if int(apply[0]['unit_pro_employment']) == 1:
        unit_pro += '个体 '
    if int(apply[0]['unit_pro_retire']) == 1:
        unit_pro += '退休 '
    if int(apply[0]['unit_pro_other']) == 1:
        unit_pro += '其它'
    d1.add(get_label(x=10 * cm, y=21.5 * cm, text=unit_pro, size=10))
    d1.add(get_label(x=2.25 * cm, y=20.25* cm, text='申请人类型', size=10))
    tenant_pro = ''
    if int(apply[0]['pro_graduate']) == 1:
        tenant_pro += '新就业普通高校毕业生'
    if int(apply[0]['pro_outside']) == 1:
        tenant_pro += '外来务工人员'
    if int(apply[0]['pro_gov_talent']) == 1:
        tenant_pro += '政府引进特殊人才'
    if int(apply[0]['pro_difficult']) == 1:
        tenant_pro += '困难家庭'
    if int(apply[0]['pro_cheap']) == 1:
        tenant_pro += '廉租房保障家庭'
    if int(apply[0]['pro_economy']) == 1:
        tenant_pro += '经济房保障家庭'
    d1.add(get_label(x=10 * cm, y=20.25 * cm, text=tenant_pro, size=10))
    d1.add(get_label(x=2.25 * cm, y=18.75 * cm, text='户口所在\n\0地址', size=10))
    d1.add(get_label(x=10 * cm, y=18.75 * cm, text=apply[0]['card_address'], size=10))
    d1.add(get_label(x=2.25 * cm, y=17.5 * cm, text='现居住地址', size=10))
    d1.add(get_label(x=10 * cm, y=17.5 * cm, text=apply[0]['now_address'], size=10))

    d1.add(get_label(x=2.25 * cm, y=16.5 * cm, text='低保证号', size=10))
    d1.add(get_label(x=10 * cm, y=16.5 * cm, text=apply[0]['minimum_living_no'], size=10))
    d1.add(get_label(x=0.5 * cm, y=20.5 * cm, text='申\n请\n人\n基\n本\n情\n况\n及\n申\n请\n公\n共\n租\n赁\n住\n房\n情\n况', size=10))
    d1.add(Line(1.2 * cm, 14.8 * cm, width, 14.8 * cm, strokeWidth=0.5))
    d1.add(Line(1.2 * cm, 13.6 * cm, width, 13.6 * cm, strokeWidth=0.5))
    d1.add(Line(1.2 * cm, 12.4 * cm, width, 12.4 * cm, strokeWidth=0.5))
    d1.add(Line(1.2 * cm, 11.2 * cm, width, 11.2 * cm, strokeWidth=0.5))
    d1.add(Line(1.2 * cm, 10 * cm, width, 10 * cm, strokeWidth=0.5))
    d1.add(Line(0 * cm, 8.8 * cm, width, 8.8 * cm, strokeWidth=0.8))
    d1.add(Line(6 * cm, 16 * cm, 6 * cm, 8.8 * cm, strokeWidth=0.5))
    d1.add(Line(11 * cm, 16 * cm, 11 * cm, 7.3 * cm, strokeWidth=0.5))
    d1.add(Line(16.5 * cm, 16 * cm, 16.5 * cm, 8.8 * cm, strokeWidth=0.5))
    d1.add(Line(0 * cm, 7.3 * cm, width, 7.3 * cm, strokeWidth=0.8))
    d1.add(Line(13.5 * cm, 8.8 * cm, 13.5 * cm, 7.3 * cm, strokeWidth=0.5))
    d1.add(get_label(x=0.5 * cm, y=12.5 * cm, text='申\n请\n人\n家\n庭\n收\n入\n情\n况', size=10))
    d1.add(get_label(x=2.25 * cm, y=15.4 * cm, text='与申请\n人关系', size=10))
    d1.add(get_label(x=2.25 * cm, y=14.2 * cm, text=apply[0]['member_relation_1'], size=10))
    d1.add(get_label(x=2.25 * cm, y=13 * cm, text=apply[0]['member_relation_2'], size=10))
    d1.add(get_label(x=2.25 * cm, y=11.8 * cm, text=apply[0]['member_relation_3'], size=10))
    d1.add(get_label(x=2.25 * cm, y=10.6 * cm, text=apply[0]['member_relation_4'], size=10))
    d1.add(get_label(x=2.25 * cm, y=9.4 * cm, text=apply[0]['member_relation_5'], size=10))
    d1.add(get_label(x=4.75 * cm, y=15.4 * cm, text='姓名', size=10))
    d1.add(get_label(x=4.75 * cm, y=14.2 * cm, text=apply[0]['member_name_1'], size=10))
    d1.add(get_label(x=4.75 * cm, y=13 * cm, text=apply[0]['member_name_2'], size=10))
    d1.add(get_label(x=4.75 * cm, y=11.8 * cm, text=apply[0]['member_name_3'], size=10))
    d1.add(get_label(x=4.75 * cm, y=10.6 * cm, text=apply[0]['member_name_4'], size=10))
    d1.add(get_label(x=4.75 * cm, y=9.4 * cm, text=apply[0]['member_name_5'], size=10))
    d1.add(get_label(x=8.5 * cm, y=15.4 * cm, text='身份证', size=10))
    d1.add(get_label(x=8.5 * cm, y=14.2 * cm, text=apply[0]['member_ID_1'], size=10))
    d1.add(get_label(x=8.5 * cm, y=13 * cm, text=apply[0]['member_ID_2'], size=10))
    d1.add(get_label(x=8.5 * cm, y=11.8 * cm, text=apply[0]['member_ID_3'], size=10))
    d1.add(get_label(x=8.5 * cm, y=10.6 * cm, text=apply[0]['member_ID_4'], size=10))
    d1.add(get_label(x=8.5 * cm, y=9.4 * cm, text=apply[0]['member_ID_5'], size=10))
    d1.add(get_label(x=13.75 * cm, y=15.4 * cm, text='工作单位', size=10))
    d1.add(get_label(x=13.75 * cm, y=14.2 * cm, text=apply[0]['member_unit_1'], size=10))
    d1.add(get_label(x=13.75 * cm, y=13 * cm, text=apply[0]['member_unit_2'], size=10))
    d1.add(get_label(x=13.75 * cm, y=11.8 * cm, text=apply[0]['member_unit_3'], size=10))
    d1.add(get_label(x=13.75 * cm, y=10.6 * cm, text=apply[0]['member_unit_4'], size=10))
    d1.add(get_label(x=13.75 * cm, y=9.4 * cm, text=apply[0]['member_unit_5'], size=10))
    d1.add(get_label(x=17.75 * cm, y=15.4 * cm, text='年收入', size=10))
    d1.add(get_label(x=17.75 * cm, y=14.2 * cm, text=str(apply[0]['member_income_1']), size=10))
    d1.add(get_label(x=17.75 * cm, y=13 * cm, text=str(apply[0]['member_income_2']), size=10))
    d1.add(get_label(x=17.75 * cm, y=11.8 * cm, text=str(apply[0]['member_income_3']), size=10))
    d1.add(get_label(x=17.75 * cm, y=10.6 * cm, text=str(apply[0]['member_income_4']), size=10))
    d1.add(get_label(x=17.75 * cm, y=9.4 * cm, text=str(apply[0]['member_income_5']), size=10))

    d1.add(get_label(x=1.8 * cm, y=8.1 * cm, text='家庭人均月收入', size=10))
    d1.add(get_label(x=4.8 * cm, y=8.1 * cm, text=str(apply[0]['income_avg']), size=10))
    d1.add(get_label(x=12.25 * cm, y=8.1 * cm, text='家庭成员\n年收入合计', size=10))
    d1.add(get_label(x=14.5 * cm, y=8.1 * cm, text=str(apply[0]['income_all']), size=10))
    d1.add(get_label(x=1.8 * cm, y=4.1 * cm, text='家庭收入\n认定意见', size=10))
    d1.add(get_label(x=11.8 * cm, y=4.1 * cm, text='经办人', size=10))
    d1.add(get_label(x=15.8 * cm, y=4.1 * cm, text='认定部门(盖章)', size=10))
    d1.add(get_label(x=15.8 * cm, y=1.1 * cm, text='年\0\0\0月\0\0\0日', size=10))
    # lable_name.setOrigin(1 * cm, 1。75 * cm)
    # lable_name.fontName = 'simsun'
    # lable_name.fontSize = 10
    elements.append(d1)
    # 第二页 开画
    d2 = Drawing(width, height)
    d2.background = Rect(0, 0, width, height, strokeWidth=1, strokeColor="#000000", fillColor=None)  # 边框颜色
    d2.add(Line(1.2 * cm, 25 * cm, 1.2 * cm, 17.5 * cm, strokeWidth=0.5))
    d2.add(Line(1.2 * cm, 23.5 * cm, width, 23.5 * cm, strokeWidth=0.5))
    d2.add(Line(1.2 * cm, 22 * cm, width, 22 * cm, strokeWidth=0.5))
    d2.add(Line(1.2 * cm, 20.5 * cm, width, 20.5 * cm, strokeWidth=0.5))
    d2.add(Line(1.2 * cm, 19 * cm, width, 19 * cm, strokeWidth=0.5))
    d2.add(Line(0 * cm, 17.5 * cm, width, 17.5 * cm, strokeWidth=0.5))
    d2.add(Line(0 * cm, 16 * cm, width, 16 * cm, strokeWidth=0.8))
    d2.add(Line(5.2 * cm, 25 * cm, 5.2 * cm, 16 * cm, strokeWidth=0.5))
    d2.add(Line(13.2 * cm, 25 * cm, 13.2 * cm, 17.5 * cm, strokeWidth=0.5))
    d2.add(Line(16.2 * cm, 25 * cm, 16.2 * cm, 17.5 * cm, strokeWidth=0.5))
    d2.add(Line(0 * cm, 11 * cm, width, 11 * cm, strokeWidth=0.8))
    d2.add(Line(0 * cm, 6 * cm, width, 6 * cm, strokeWidth=0.8))
    d2.add(Line(9.5 * cm, 16 * cm, 9.5 * cm, 11 * cm, strokeWidth=0.8))
    d2.add(get_label(x=0.5 * cm, y=21.5 * cm, text='申\n请\n人\n家\n庭\n成\n员\n住\n房\n情\n况', size=10))
    d2.add(get_label(x=3.25 * cm, y=24.2 * cm, text='产权人或承租人', size=10))
    d2.add(get_label(x=3.25 * cm, y=22.8 * cm, text=apply[0]['member_name_11'], size=10))
    d2.add(get_label(x=3.25 * cm, y=21.2 * cm, text=apply[0]['member_name_12'], size=10))
    d2.add(get_label(x=9.25 * cm, y=24.2 * cm, text='房屋坐落', size=10))
    d2.add(get_label(x=9.25 * cm, y=22.8 * cm, text=apply[0]['member_address_11'], size=10))
    d2.add(get_label(x=9.25 * cm, y=21.2 * cm, text=apply[0]['member_address_12'], size=10))
    d2.add(get_label(x=14.75 * cm, y=24.2 * cm, text='建筑面积', size=10))
    d2.add(get_label(x=14.75 * cm, y=22.8 * cm, text=str(apply[0]['member_con_area_11']), size=10))
    d2.add(get_label(x=14.75 * cm, y=21.2 * cm, text=str(apply[0]['member_con_area_12']), size=10))
    d2.add(get_label(x=17.55 * cm, y=24.2 * cm, text='住房性质', size=10))
    d2.add(get_label(x=17.55 * cm, y=22.8 * cm, text=apply[0]['member_door_pro_11'], size=10))
    d2.add(get_label(x=17.55 * cm, y=21.2 * cm, text=apply[0]['member_door_pro_12'], size=10))
    d2.add(get_label(x=3.25 * cm, y=19.75 * cm, text='近五年转让\n房屋情况', size=10))
    d2.add(get_label(x=9.25 * cm, y=19.75 * cm, text=apply[0]['transfer_address_1'], size=10))
    d2.add(get_label(x=14.75 * cm, y=19.75 * cm, text=str(apply[0]['transfer_con_area_1']), size=10))
    d2.add(get_label(x=17.55 * cm, y=19.75 * cm, text=str(apply[0]['transfer_pro_1']), size=10))
    d2.add(get_label(x=3.25 * cm, y=18.25 * cm, text='近五年拆迁\n房屋情况', size=10))
    d2.add(get_label(x=9.25 * cm, y=18.25 * cm, text=apply[0]['remove_address_1'], size=10))
    d2.add(get_label(x=14.75 * cm, y=18.25 * cm, text=str(apply[0]['remove_con_area_1']), size=10))
    d2.add(get_label(x=17.55 * cm, y=18.25 * cm, text=str(apply[0]['remove_pro_1']), size=10))
    d2.add(get_label(x=2.25 * cm, y=16.75 * cm, text='家庭人均建筑面积', size=10))
    d2.add(get_label(x=9.25 * cm, y=16.75 * cm, text=str(apply[0]['con_area_avg']), size=10))
    d2.add(get_label(x=2 * cm, y=15.25 * cm, text='所在社区意见:', size=10))
    d2.add(get_label(x=1.45 * cm, y=13.5 * cm, text='负责人:', size=10))
    d2.add(get_label(x=1.45 * cm, y=12.5 * cm, text='经办人:', size=10))
    d2.add(get_label(x=7.45 * cm, y=12.5 * cm, text='公章', size=10))
    d2.add(get_label(x=7.45 * cm, y=11.5 * cm, text='年\0\0\0月\0\0\0日', size=10))
    d2.add(get_label(x=11.9 * cm, y=15.25 * cm, text='所在街道办事处意见:', size=10))
    d2.add(get_label(x=10.75 * cm, y=13.5 * cm, text='负责人:', size=10))
    d2.add(get_label(x=10.75 * cm, y=12.5 * cm, text='经办人:', size=10))
    d2.add(get_label(x=16.75 * cm, y=12.5 * cm, text='公章', size=10))
    d2.add(get_label(x=16.75 * cm, y=11.5 * cm, text='年\0\0\0月\0\0\0日', size=10))
    d2.add(get_label(x=3.25 * cm, y=10.25 * cm, text='区县(市)住房保障部门意见:', size=10))
    d2.add(get_label(x=1.45 * cm, y=8.75 * cm, text='负责人:', size=10))
    d2.add(get_label(x=1.45 * cm, y=7.75 * cm, text='经办人:', size=10))
    d2.add(get_label(x=16.75 * cm, y=7.75 * cm, text='公章', size=10))
    d2.add(get_label(x=16.75 * cm, y=6.5 * cm, text='年\0\0\0月\0\0\0日', size=10))
    d2.add(get_label(x=3.25 * cm, y=5 * cm, text='市保障性住房管理办公室意见:', size=10))
    d2.add(get_label(x=16.75 * cm, y=1 * cm, text='年\0\0\0月\0\0\0日', size=10))
    elements.append(Spacer(0, 1.75 * cm))
    elements.append(d2)
    doc = SimpleDocTemplate('hello.pdf',
                            topMargin=0.6 * cm,
                            leftMargin=0.7 * cm,
                            rightMargin=0.6 * cm,
                            bottomMargin=0 * cm, title='dalun')
    doc.build(elements)
Exemplo n.º 21
0
eg("""
>>> from reportlab.graphics.shapes import Rect
>>> from reportlab.lib.colors import red, green
>>> r = Rect(5, 5, 200, 100)
>>> r.fillColor = red
>>> r.strokeColor = green
>>> r.strokeWidth = 3
>>>
""")

from reportlab.graphics.shapes import Rect
from reportlab.lib.colors import red, green

d = Drawing(220, 120)
r = Rect(5, 5, 200, 100)
r.fillColor = red
r.strokeColor = green
r.strokeWidth = 3
d.add(r)
draw(d, "red rectangle with green border")

disc("""
<i>Note: In future examples we will omit the import statements.</i>
""")

disc("""
All shapes have a number of properties which can be set.
At an interactive prompt, we can use their <i>dumpProperties()</i>
method to list these.
Here's what you can use to configure a Rect:
Exemplo n.º 22
0
 def _defaultSwatch(self,x,thisy,dx,dy,fillColor,strokeWidth,strokeColor):
     return Rect(x, thisy, dx, dy,
                 fillColor = fillColor,
                 strokeColor = strokeColor,
                 strokeWidth = strokeWidth,
                 )
Exemplo n.º 23
0
    def draw(self):
        g = Group()

        #box
        g.add(
            Rect(self.x,
                 self.y,
                 len(self.xlabels) * self.gridDivWidth,
                 len(self.ylabels) * self.gridDivWidth,
                 strokeColor=self.gridColor,
                 strokeWidth=self.strokeWidth,
                 fillColor=None))

        #internal gridding
        for f in range(1, len(self.ylabels)):
            #horizontal
            g.add(
                Line(strokeColor=self.gridColor,
                     strokeWidth=self.strokeWidth,
                     x1=self.x,
                     y1=self.y + f * self.gridDivWidth,
                     x2=self.x + len(self.xlabels) * self.gridDivWidth,
                     y2=self.y + f * self.gridDivWidth))
        for f in range(1, len(self.xlabels)):
            #vertical
            g.add(
                Line(strokeColor=self.gridColor,
                     strokeWidth=self.strokeWidth,
                     x1=self.x + f * self.gridDivWidth,
                     y1=self.y,
                     x2=self.x + f * self.gridDivWidth,
                     y2=self.y + len(self.ylabels) * self.gridDivWidth))

        # draw the 'dot'
        g.add(
            Circle(strokeColor=self.gridColor,
                   strokeWidth=self.strokeWidth,
                   fillColor=self.dotColor,
                   cx=self.x + (self.dotXPosition * self.gridDivWidth),
                   cy=self.y + (self.dotYPosition * self.gridDivWidth),
                   r=self.dotDiameter / 2.0))

        #used for centering y-labels (below)
        ascent = getFont(self.labelFontName).face.ascent
        if ascent == 0:
            ascent = 0.718  # default (from helvetica)
        ascent = ascent * self.labelFontSize  # normalize

        #do y-labels
        if self.ylabels != None:
            for f in range(len(self.ylabels) - 1, -1, -1):
                if self.ylabels[f] != None:
                    g.add(
                        String(strokeColor=self.gridColor,
                               text=self.ylabels[f],
                               fontName=self.labelFontName,
                               fontSize=self.labelFontSize,
                               fillColor=_PCMYK_black,
                               x=self.x - self.labelOffset,
                               y=self.y + (f * self.gridDivWidth +
                                           (self.gridDivWidth - ascent) / 2.0),
                               textAnchor='end'))

        #do x-labels
        if self.xlabels != None:
            for f in range(0, len(self.xlabels)):
                if self.xlabels[f] != None:
                    l = Label()
                    l.x = self.x + (f * self.gridDivWidth
                                    ) + (self.gridDivWidth + ascent) / 2.0
                    l.y = self.y + (len(self.ylabels) *
                                    self.gridDivWidth) + self.labelOffset
                    l.angle = 90
                    l.textAnchor = 'start'
                    l.fontName = self.labelFontName
                    l.fontSize = self.labelFontSize
                    l.fillColor = _PCMYK_black
                    l.setText(self.xlabels[f])
                    l.boxAnchor = 'sw'
                    l.draw()
                    g.add(l)

        return g
Exemplo n.º 24
0
 def __init__(self, width=400, height=200, *args, **kw):
     Drawing.__init__(self, width, height, *args, **kw)
     self.transform = (1, 0, 0, 1, 0, 0)
     self.add(
         Rect(50,
              50,
              300,
              125,
              rx=0,
              ry=0,
              fillColor=None,
              fillOpacity=None,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Rect(50,
              70.83333,
              252,
              83.33333,
              rx=0,
              ry=0,
              fillColor=Color(1, 0, 0, 1),
              fillOpacity=None,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(49,
              50,
              49,
              175,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(49,
              50,
              44,
              50,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(49,
              175,
              44,
              175,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     v0 = self._nn(Group())
     v0.transform = (.866025, .5, -0.5, .866025, 44, 112.5)
     v0.add(
         String(-26.66,
                2,
                'Jan-99',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     self.add(
         Line(50,
              50,
              350,
              50,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(50,
              50,
              50,
              45,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(140,
              50,
              140,
              45,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(230,
              50,
              230,
              45,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(320,
              50,
              320,
              45,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 50, 45)
     v0.add(
         String(-2.5,
                -10,
                '0',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 140, 45)
     v0.add(
         String(-5,
                -10,
                '15',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 230, 45)
     v0.add(
         String(-5,
                -10,
                '30',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 320, 45)
     v0.add(
         String(-5,
                -10,
                '45',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
Exemplo n.º 25
0
    def makeLines(self):
        g = Group()

        labelFmt = self.lineLabelFormat
        P = self._positions
        if self.reversePlotOrder: P.reverse()
        lines = self.lines
        styleCount = len(lines)
        _inFill = self.inFill
        if (_inFill or self._pairInFills or [
                rowNo for rowNo in range(len(P))
                if getattr(lines[rowNo % styleCount], 'inFill', False)
        ]):
            inFillY = self.categoryAxis._y
            inFillX0 = self.valueAxis._x
            inFillX1 = inFillX0 + self.categoryAxis._length
            inFillG = getattr(self, '_inFillG', g)
        yzero = self._yzero

        # Iterate over data rows.
        for rowNo, row in enumerate(
                reversed(P) if self.reversePlotOrder else P):
            styleIdx = rowNo % styleCount
            rowStyle = lines[styleIdx]
            strokeColor = rowStyle.strokeColor
            fillColor = getattr(rowStyle, 'fillColor', strokeColor)
            inFill = getattr(rowStyle, 'inFill', _inFill)
            dash = getattr(rowStyle, 'strokeDashArray', None)
            lineStyle = getattr(rowStyle, 'lineStyle', None)

            if hasattr(rowStyle, 'strokeWidth'):
                strokeWidth = rowStyle.strokeWidth
            elif hasattr(lines, 'strokeWidth'):
                strokeWidth = lines.strokeWidth
            else:
                strokeWidth = None

            # Iterate over data columns.
            if lineStyle == 'bar':
                barWidth = getattr(rowStyle, 'barWidth', Percentage(50))
                if isinstance(barWidth, Percentage):
                    hbw = self._hngs * barWidth * 0.01
                else:
                    hbw = barWidth * 0.5
                for x, y in row:
                    g.add(
                        Rect(x - hbw,
                             min(y, yzero),
                             2 * hbw,
                             abs(y - yzero),
                             strokeWidth=strokeWidth,
                             strokeColor=strokeColor,
                             fillColor=fillColor))
            elif self.joinedLines or lineStyle == 'joinedLine':
                points = flatten(row)
                if inFill or isinstance(row, FillPairedData):
                    filler = getattr(rowStyle, 'filler', None)
                    if isinstance(row, FillPairedData):
                        fpoints = points + flatten(reversed(P[row.other]))
                    else:
                        fpoints = [inFillX0, inFillY
                                   ] + points + [inFillX1, inFillY]
                    if filler:
                        filler.fill(self, inFillG, rowNo, fillColor, fpoints)
                    else:
                        inFillG.add(
                            Polygon(fpoints,
                                    fillColor=fillColor,
                                    strokeColor=strokeColor
                                    if strokeColor == fillColor else None,
                                    strokeWidth=strokeWidth or 0.1))
                if not inFill or inFill == 2 or strokeColor != fillColor:
                    line = PolyLine(points,
                                    strokeColor=strokeColor,
                                    strokeLineCap=0,
                                    strokeLineJoin=1)
                    if strokeWidth:
                        line.strokeWidth = strokeWidth
                    if dash:
                        line.strokeDashArray = dash
                    g.add(line)

            if hasattr(rowStyle, 'symbol'):
                uSymbol = rowStyle.symbol
            elif hasattr(lines, 'symbol'):
                uSymbol = lines.symbol
            else:
                uSymbol = None

            if uSymbol:
                for colNo, (x, y) in enumerate(row):
                    symbol = uSymbol2Symbol(tpcGetItem(uSymbol, colNo), x, y,
                                            rowStyle.strokeColor)
                    if symbol: g.add(symbol)

            # Draw item labels.
            for colNo, (x, y) in enumerate(row):
                self.drawLabel(g, rowNo, colNo, x, y)

        return g
Exemplo n.º 26
0
    def _Flag_Brazil(self):
        s = _size  # abbreviate as we will use this a lot
        g = Group()

        m = s / 14.0
        self._width = w = (m * 20)

        def addStar(x, y, size, g=g, w=w, s=s, m=m):
            st = Star()
            st.fillColor = colors.mintcream
            st.size = size * m
            st.x = (w / 2.0) + (x * (0.35 * m))
            st.y = (s / 2.0) + (y * (0.35 * m))
            g.add(st)

        g.add(
            Rect(0,
                 0,
                 w,
                 s,
                 fillColor=colors.green,
                 strokeColor=None,
                 strokeWidth=0))
        g.add(
            Polygon(points=[
                1.7 * m, (s / 2.0), (w / 2.0), s - (1.7 * m), w - (1.7 * m),
                (s / 2.0), (w / 2.0), 1.7 * m
            ],
                    fillColor=colors.yellow,
                    strokeColor=None,
                    strokeWidth=0))
        g.add(
            Circle(cx=w / 2.0,
                   cy=s / 2.0,
                   r=3.5 * m,
                   fillColor=colors.blue,
                   strokeColor=None,
                   strokeWidth=0))
        g.add(
            Wedge((w / 2.0) - (2 * m),
                  0,
                  8.5 * m,
                  50,
                  98.1,
                  8.5 * m,
                  fillColor=colors.mintcream,
                  strokeColor=None,
                  strokeWidth=0))
        g.add(
            Wedge((w / 2.0), (s / 2.0),
                  3.501 * m,
                  156,
                  352,
                  3.501 * m,
                  fillColor=colors.mintcream,
                  strokeColor=None,
                  strokeWidth=0))
        g.add(
            Wedge((w / 2.0) - (2 * m),
                  0,
                  8 * m,
                  48.1,
                  100,
                  8 * m,
                  fillColor=colors.blue,
                  strokeColor=None,
                  strokeWidth=0))
        g.add(
            Rect(0,
                 0,
                 w, (s / 4.0) + 1.7 * m,
                 fillColor=colors.green,
                 strokeColor=None,
                 strokeWidth=0))
        g.add(
            Polygon(points=[
                1.7 * m, (s / 2.0), (w / 2.0), s / 2.0 - 2 * m, w - (1.7 * m),
                (s / 2.0), (w / 2.0), 1.7 * m
            ],
                    fillColor=colors.yellow,
                    strokeColor=None,
                    strokeWidth=0))
        g.add(
            Wedge(w / 2.0,
                  s / 2.0,
                  3.502 * m,
                  166,
                  342.1,
                  3.502 * m,
                  fillColor=colors.blue,
                  strokeColor=None,
                  strokeWidth=0))

        addStar(3.2, 3.5, 0.3)
        addStar(-8.5, 1.5, 0.3)
        addStar(-7.5, -3, 0.3)
        addStar(-4, -5.5, 0.3)
        addStar(0, -4.5, 0.3)
        addStar(7, -3.5, 0.3)
        addStar(-3.5, -0.5, 0.25)
        addStar(0, -1.5, 0.25)
        addStar(1, -2.5, 0.25)
        addStar(3, -7, 0.25)
        addStar(5, -6.5, 0.25)
        addStar(6.5, -5, 0.25)
        addStar(7, -4.5, 0.25)
        addStar(-5.5, -3.2, 0.25)
        addStar(-6, -4.2, 0.25)
        addStar(-1, -2.75, 0.2)
        addStar(2, -5.5, 0.2)
        addStar(4, -5.5, 0.2)
        addStar(5, -7.5, 0.2)
        addStar(5, -5.5, 0.2)
        addStar(6, -5.5, 0.2)
        addStar(-8.8, -3.2, 0.2)
        addStar(2.5, 0.5, 0.2)
        addStar(-0.2, -3.2, 0.14)
        addStar(-7.2, -2, 0.14)
        addStar(0, -8, 0.1)

        sTmp = "ORDEM E PROGRESSO"
        nTmp = len(sTmp)
        delta = 0.850848010347 / nTmp
        radius = 7.9 * m
        centerx = (w / 2.0) - (2 * m)
        centery = 0
        for i in range(nTmp):
            rad = 2 * pi - i * delta - 4.60766922527
            x = cos(rad) * radius + centerx
            y = sin(rad) * radius + centery
            if i == 6:
                z = 0.35 * m
            else:
                z = 0.45 * m
            g2 = Group(
                String(x,
                       y,
                       sTmp[i],
                       fontName='Helvetica-Bold',
                       fontSize=z,
                       strokeColor=None,
                       fillColor=colors.green))
            g2.rotate(rad)
            g.add(g2)
        return g
Exemplo n.º 27
0
    def draw(self):
        g = Group()
        gAdd = g.add
        barWidth = self.barWidth
        width = self.width
        barHeight = self.barHeight
        x = self.x
        y = self.y
        gAdd(
            Rect(x,
                 y,
                 width,
                 barHeight,
                 fillColor=None,
                 strokeColor=None,
                 strokeWidth=0))
        s = self.value + self._checkdigit(self.value)
        self._lquiet = lquiet = self._calc_quiet(self.lquiet)
        rquiet = self._calc_quiet(self.rquiet)
        b = [lquiet * '0', self._tail]  #the signal string
        a = b.append
        self._encode_left(s, a)
        a(self._sep)

        z = ord('0')
        _right = self._right
        for c in s[self._start_right:]:
            a(_right[ord(c) - z])
        a(self._tail)
        a(rquiet * '0')

        fontSize = self.fontSize
        barFillColor = self.barFillColor
        barStrokeWidth = self.barStrokeWidth
        barStrokeColor = self.barStrokeColor

        fth = fontSize * 1.2
        b = ''.join(b)

        lrect = None
        for i, c in enumerate(b):
            if c == "1":
                dh = self._short_bar(i) and fth or 0
                yh = y + dh
                if lrect and lrect.y == yh:
                    lrect.width += barWidth
                else:
                    lrect = Rect(x,
                                 yh,
                                 barWidth,
                                 barHeight - dh,
                                 fillColor=barFillColor,
                                 strokeWidth=barStrokeWidth,
                                 strokeColor=barStrokeColor)
                    gAdd(lrect)
            else:
                lrect = None
            x += barWidth

        if self.humanReadable: self._add_human_readable(s, gAdd)
        return g
Exemplo n.º 28
0
 def _Flag_UK(self):
     s = _size
     g = Group()
     w = s * 2
     g.add(
         Rect(0,
              0,
              w,
              s,
              fillColor=colors.navy,
              strokeColor=colors.black,
              strokeWidth=0))
     g.add(
         Polygon([
             0, 0, s * .225, 0, w, s *
             (1 - .1125), w, s, w - s * .225, s, 0, s * .1125
         ],
                 fillColor=colors.mintcream,
                 strokeColor=None,
                 strokeWidth=0))
     g.add(
         Polygon([
             0, s * (1 - .1125), 0, s, s * .225, s, w, s * .1125, w, 0,
             w - s * .225, 0
         ],
                 fillColor=colors.mintcream,
                 strokeColor=None,
                 strokeWidth=0))
     g.add(
         Polygon([
             0, s - (s / 15.0), (s - ((s / 10.0) * 4)), (s * 0.65),
             (s - (s / 10.0) * 3), (s * 0.65), 0, s
         ],
                 fillColor=colors.red,
                 strokeColor=None,
                 strokeWidth=0))
     g.add(
         Polygon([
             0, 0, (s - ((s / 10.0) * 3)), (s * 0.35),
             (s - ((s / 10.0) * 2)), (s * 0.35), (s / 10.0), 0
         ],
                 fillColor=colors.red,
                 strokeColor=None,
                 strokeWidth=0))
     g.add(
         Polygon([
             w, s, (s + ((s / 10.0) * 3)), (s * 0.65),
             (s + ((s / 10.0) * 2)), (s * 0.65), w - (s / 10.0), s
         ],
                 fillColor=colors.red,
                 strokeColor=None,
                 strokeWidth=0))
     g.add(
         Polygon([
             w, (s / 15.0), (s + ((s / 10.0) * 4)), (s * 0.35),
             (s + ((s / 10.0) * 3)), (s * 0.35), w, 0
         ],
                 fillColor=colors.red,
                 strokeColor=None,
                 strokeWidth=0))
     g.add(
         Rect(((s * 0.42) * 2),
              0,
              width=(0.16 * s) * 2,
              height=s,
              fillColor=colors.mintcream,
              strokeColor=None,
              strokeWidth=0))
     g.add(
         Rect(0, (s * 0.35),
              width=w,
              height=s * 0.3,
              fillColor=colors.mintcream,
              strokeColor=None,
              strokeWidth=0))
     g.add(
         Rect(((s * 0.45) * 2),
              0,
              width=(0.1 * s) * 2,
              height=s,
              fillColor=colors.red,
              strokeColor=None,
              strokeWidth=0))
     g.add(
         Rect(0, (s * 0.4),
              width=w,
              height=s * 0.2,
              fillColor=colors.red,
              strokeColor=None,
              strokeWidth=0))
     return g
Exemplo n.º 29
0
 def makeBackground(self):
     if self.background is not None:
         BG = self.background
         if isinstance(BG, Group):
             g = BG
             for bg in g.contents:
                 bg.x = self.x
                 bg.y = self.y
                 bg.width = self.width
                 bg.height = self.height
         else:
             g = Group()
             if type(BG) not in (type(()), type([])): BG = (BG, )
             for bg in BG:
                 bg.x = self.x
                 bg.y = self.y
                 bg.width = self.width
                 bg.height = self.height
                 g.add(bg)
         return g
     else:
         strokeColor, strokeWidth, fillColor = self.strokeColor, self.strokeWidth, self.fillColor
         if (strokeWidth and strokeColor) or fillColor:
             g = Group()
             _3d_dy = getattr(self, '_3d_dy', None)
             x = self.x
             y = self.y
             h = self.height
             w = self.width
             if _3d_dy is not None:
                 _3d_dx = self._3d_dx
                 if fillColor and not strokeColor:
                     from reportlab.lib.colors import Blacker
                     c = Blacker(fillColor, getattr(self, '_3d_blacken',
                                                    0.7))
                 else:
                     c = strokeColor
                 if not strokeWidth: strokeWidth = 0.5
                 if fillColor or strokeColor or c:
                     bg = Polygon([
                         x, y, x, y + h, x + _3d_dx, y + h + _3d_dy,
                         x + w + _3d_dx, y + h + _3d_dy, x + w + _3d_dx,
                         y + _3d_dy, x + w, y
                     ],
                                  strokeColor=strokeColor or c or grey,
                                  strokeWidth=strokeWidth,
                                  fillColor=fillColor)
                     g.add(bg)
                     g.add(
                         Line(x,
                              y,
                              x + _3d_dx,
                              y + _3d_dy,
                              strokeWidth=0.5,
                              strokeColor=c))
                     g.add(
                         Line(x + _3d_dx,
                              y + _3d_dy,
                              x + _3d_dx,
                              y + h + _3d_dy,
                              strokeWidth=0.5,
                              strokeColor=c))
                     fc = Blacker(c, getattr(self, '_3d_blacken', 0.8))
                     g.add(
                         Polygon([
                             x, y, x + _3d_dx, y + _3d_dy, x + w + _3d_dx,
                             y + _3d_dy, x + w, y
                         ],
                                 strokeColor=strokeColor or c or grey,
                                 strokeWidth=strokeWidth,
                                 fillColor=fc))
                     bg = Line(x + _3d_dx,
                               y + _3d_dy,
                               x + w + _3d_dx,
                               y + _3d_dy,
                               strokeWidth=0.5,
                               strokeColor=c)
                 else:
                     bg = None
             else:
                 bg = Rect(x,
                           y,
                           w,
                           h,
                           strokeColor=strokeColor,
                           strokeWidth=strokeWidth,
                           fillColor=fillColor)
             if bg: g.add(bg)
             return g
         else:
             return None
Exemplo n.º 30
0
 def __init__(self, width=400, height=200, *args, **kw):
     Drawing.__init__(self, width, height, *args, **kw)
     self.transform = (1, 0, 0, 1, 0, 0)
     self.add(
         Rect(50,
              50,
              300,
              125,
              rx=0,
              ry=0,
              fillColor=None,
              fillOpacity=None,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(50,
              50,
              350,
              50,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(110,
              50,
              110,
              45,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(170,
              50,
              170,
              45,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(200,
              50,
              200,
              45,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(230,
              50,
              230,
              45,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(290,
              50,
              290,
              45,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(350,
              50,
              350,
              45,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 110, 45)
     v0.add(
         String(-6.25,
                -10,
                '1.0',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 170, 45)
     v0.add(
         String(-6.25,
                -10,
                '2.0',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 200, 45)
     v0.add(
         String(-6.25,
                -10,
                '2.5',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 230, 45)
     v0.add(
         String(-6.25,
                -10,
                '3.0',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 290, 45)
     v0.add(
         String(-6.25,
                -10,
                '4.0',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 350, 45)
     v0.add(
         String(-6.25,
                -10,
                '5.0',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     self.add(
         Line(50,
              50,
              50,
              175,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=0,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(50,
              50,
              45,
              50,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(50,
              67.85714,
              45,
              67.85714,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(50,
              85.71429,
              45,
              85.71429,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(50,
              103.5714,
              45,
              103.5714,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(50,
              121.4286,
              45,
              121.4286,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(50,
              139.2857,
              45,
              139.2857,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(50,
              157.1429,
              45,
              157.1429,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     self.add(
         Line(50,
              175,
              45,
              175,
              strokeColor=Color(0, 0, 0, 1),
              strokeWidth=1,
              strokeLineCap=0,
              strokeLineJoin=0,
              strokeMiterLimit=10,
              strokeDashArray=None,
              strokeOpacity=None))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 45, 50)
     v0.add(
         String(-5,
                -4,
                '0',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 45, 67.85714)
     v0.add(
         String(-5,
                -4,
                '1',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 45, 85.71429)
     v0.add(
         String(-5,
                -4,
                '2',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 45, 103.5714)
     v0.add(
         String(-5,
                -4,
                '3',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 45, 121.4286)
     v0.add(
         String(-5,
                -4,
                '4',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 45, 139.2857)
     v0.add(
         String(-5,
                -4,
                '5',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 45, 157.1429)
     v0.add(
         String(-5,
                -4,
                '6',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 45, 175)
     v0.add(
         String(-5,
                -4,
                '7',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     self.add(
         PolyLine(points=[
             110, 67.85714, 170, 85.71429, 200, 67.85714, 230, 103.5714,
             290, 139.2857
         ],
                  strokeColor=Color(1, 0, 0, 1),
                  strokeWidth=1,
                  strokeLineCap=0,
                  strokeLineJoin=1,
                  strokeMiterLimit=0,
                  strokeDashArray=None,
                  strokeOpacity=None))
     self.add(
         PolyLine(points=[
             110, 85.71429, 170, 103.5714, 200, 85.71429, 260, 139.2857,
             290, 157.1429
         ],
                  strokeColor=Color(0, 0, 1, 1),
                  strokeWidth=1,
                  strokeLineCap=0,
                  strokeLineJoin=1,
                  strokeMiterLimit=0,
                  strokeDashArray=None,
                  strokeOpacity=None))
     self.add(
         Circle(110,
                67.85714,
                2.5,
                fillColor=Color(1, 0, 0, 1),
                fillOpacity=None,
                strokeColor=Color(0, 0, 0, 1),
                strokeWidth=.1,
                strokeLineCap=0,
                strokeLineJoin=0,
                strokeMiterLimit=0,
                strokeDashArray=None,
                strokeOpacity=None))
     self.add(
         Circle(170,
                85.71429,
                2.5,
                fillColor=Color(1, 0, 0, 1),
                fillOpacity=None,
                strokeColor=Color(0, 0, 0, 1),
                strokeWidth=.1,
                strokeLineCap=0,
                strokeLineJoin=0,
                strokeMiterLimit=0,
                strokeDashArray=None,
                strokeOpacity=None))
     self.add(
         Circle(200,
                67.85714,
                2.5,
                fillColor=Color(1, 0, 0, 1),
                fillOpacity=None,
                strokeColor=Color(0, 0, 0, 1),
                strokeWidth=.1,
                strokeLineCap=0,
                strokeLineJoin=0,
                strokeMiterLimit=0,
                strokeDashArray=None,
                strokeOpacity=None))
     self.add(
         Circle(230,
                103.5714,
                2.5,
                fillColor=Color(1, 0, 0, 1),
                fillOpacity=None,
                strokeColor=Color(0, 0, 0, 1),
                strokeWidth=.1,
                strokeLineCap=0,
                strokeLineJoin=0,
                strokeMiterLimit=0,
                strokeDashArray=None,
                strokeOpacity=None))
     self.add(
         Circle(290,
                139.2857,
                2.5,
                fillColor=Color(1, 0, 0, 1),
                fillOpacity=None,
                strokeColor=Color(0, 0, 0, 1),
                strokeWidth=.1,
                strokeLineCap=0,
                strokeLineJoin=0,
                strokeMiterLimit=0,
                strokeDashArray=None,
                strokeOpacity=None))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 110, 77.85714)
     v0.add(
         String(-3.75,
                -4,
                ' 1',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 170, 95.71429)
     v0.add(
         String(-3.75,
                -4,
                ' 2',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 200, 77.85714)
     v0.add(
         String(-3.75,
                -4,
                ' 1',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 230, 113.5714)
     v0.add(
         String(-3.75,
                -4,
                ' 3',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 290, 149.2857)
     v0.add(
         String(-3.75,
                -4,
                ' 5',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     self.add(
         Circle(110,
                85.71429,
                2.5,
                fillColor=Color(0, 0, 1, 1),
                fillOpacity=None,
                strokeColor=Color(0, 0, 0, 1),
                strokeWidth=.1,
                strokeLineCap=0,
                strokeLineJoin=0,
                strokeMiterLimit=0,
                strokeDashArray=None,
                strokeOpacity=None))
     self.add(
         Circle(170,
                103.5714,
                2.5,
                fillColor=Color(0, 0, 1, 1),
                fillOpacity=None,
                strokeColor=Color(0, 0, 0, 1),
                strokeWidth=.1,
                strokeLineCap=0,
                strokeLineJoin=0,
                strokeMiterLimit=0,
                strokeDashArray=None,
                strokeOpacity=None))
     self.add(
         Circle(200,
                85.71429,
                2.5,
                fillColor=Color(0, 0, 1, 1),
                fillOpacity=None,
                strokeColor=Color(0, 0, 0, 1),
                strokeWidth=.1,
                strokeLineCap=0,
                strokeLineJoin=0,
                strokeMiterLimit=0,
                strokeDashArray=None,
                strokeOpacity=None))
     self.add(
         Circle(260,
                139.2857,
                2.5,
                fillColor=Color(0, 0, 1, 1),
                fillOpacity=None,
                strokeColor=Color(0, 0, 0, 1),
                strokeWidth=.1,
                strokeLineCap=0,
                strokeLineJoin=0,
                strokeMiterLimit=0,
                strokeDashArray=None,
                strokeOpacity=None))
     self.add(
         Circle(290,
                157.1429,
                2.5,
                fillColor=Color(0, 0, 1, 1),
                fillOpacity=None,
                strokeColor=Color(0, 0, 0, 1),
                strokeWidth=.1,
                strokeLineCap=0,
                strokeLineJoin=0,
                strokeMiterLimit=0,
                strokeDashArray=None,
                strokeOpacity=None))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 110, 95.71429)
     v0.add(
         String(-3.75,
                -4,
                ' 2',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 170, 113.5714)
     v0.add(
         String(-3.75,
                -4,
                ' 3',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 200, 95.71429)
     v0.add(
         String(-3.75,
                -4,
                ' 2',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 260, 149.2857)
     v0.add(
         String(-3.75,
                -4,
                ' 5',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))
     v0 = self._nn(Group())
     v0.transform = (1, 0, 0, 1, 290, 167.1429)
     v0.add(
         String(-3.75,
                -4,
                ' 6',
                textAnchor='start',
                fontName='Times-Roman',
                fontSize=10,
                fillColor=Color(0, 0, 0, 1)))