reportlab/lib/corp.py
author rgbecker
Wed, 25 Oct 2000 08:57:46 +0000
changeset 494 54257447cfe9
parent 40 19b843a1f8f6
child 1121 32fb78c22ae4
permissions -rw-r--r--
Changed to indirect copyright
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
40
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
     1
#!/bin/env python
494
54257447cfe9 Changed to indirect copyright
rgbecker
parents: 40
diff changeset
     2
#copyright ReportLab Inc. 2000
54257447cfe9 Changed to indirect copyright
rgbecker
parents: 40
diff changeset
     3
#see license.txt for license details
54257447cfe9 Changed to indirect copyright
rgbecker
parents: 40
diff changeset
     4
#history http://cvs.sourceforge.net/cgi-bin/cvsweb.cgi/reportlab/lib/corp.py?cvsroot=reportlab
54257447cfe9 Changed to indirect copyright
rgbecker
parents: 40
diff changeset
     5
#$Header: /tmp/reportlab/reportlab/lib/corp.py,v 1.2 2000/10/25 08:57:45 rgbecker Exp $
40
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
     6
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
     7
""" This module includes some reusable routines for ReportLab's
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
     8
 'Corporate Image' - the logo, standard page backdrops and
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
     9
 so on - you are advised to do the same for your own company!"""
494
54257447cfe9 Changed to indirect copyright
rgbecker
parents: 40
diff changeset
    10
__version__=''' $Id: corp.py,v 1.2 2000/10/25 08:57:45 rgbecker Exp $ '''
40
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    11
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    12
from reportlab.lib.units import inch
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    13
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    14
class ReportLabLogo:
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    15
    """vector reportlab logo centered in a 250x by 150y rectangle"""
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    16
    
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    17
    def __init__(self, atx=0, aty=0, width=2.5*inch, height=1.5*inch, powered_by=0):
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    18
        self.origin = (atx, aty)
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    19
        self.dimensions = (width, height)
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    20
        self.powered_by = powered_by
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    21
        
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    22
    dogrid = 0
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    23
    xticks = 25
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    24
    yticks = 15
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    25
    def draw(self, canvas):
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    26
        canvas.saveState()
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    27
        (atx,aty) = self.origin
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    28
        canvas.translate(atx, aty)
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    29
        (width, height) = self.dimensions
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    30
        canvas.scale(width/250.0, height/150.0)
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    31
        # do a skew
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    32
        canvas.skew(0,20)
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    33
        self.setup(canvas)
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    34
        if self.powered_by:
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    35
            canvas.setFont("Helvetica-Bold", 18)
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    36
            canvas.drawString(-15, 135, "powered by")
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    37
        # do a stretched "ReportLab"
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    38
        canvas.saveState()
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    39
        canvas.setFont("Helvetica-Bold", 30)
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    40
        canvas.scale(1.65,1)
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    41
        canvas.drawString(0,60,"ReportLab")
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    42
        canvas.restoreState()
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    43
        # draw the "page" as a bunch of rectangles
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    44
        rects = [
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    45
        #  x  y  h, w
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    46
         [65,10,40,8], # below p
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    47
         [65,53,22.5,8], # over p
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    48
         [65,78,50,8], # above p
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    49
         [65,123,7,75], # across top
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    50
         [161,86,29,9], # above L
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    51
         [161,60.5,21,9], # over L
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    52
         [161,10,47,9], # below L
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    53
         [65,10,7,102], # across bottom
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    54
         [140,110,20,10], # notch vertical
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    55
         [140,110,7,29.5],# notch horizontal
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    56
         ]
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    57
        fill = 1
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    58
        for [x,y,h,w] in rects:
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    59
            canvas.rect(x,y,w,h, stroke=1, fill=fill)
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    60
            #break
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    61
        path = canvas.beginPath()
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    62
        path.moveTo(150,130)
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    63
        for (x,y) in ((170,115), (167,112), (147,127)):
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    64
            path.lineTo(x,y)
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    65
        #path.close()
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    66
        canvas.drawPath(path, stroke=1, fill=fill)
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    67
        canvas.restoreState()
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    68
   
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    69
    def setup(self, canvas):
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    70
        xticks, yticks = self.xticks, self.yticks
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    71
        if self.dogrid:
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    72
            canvas.saveState()
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    73
            for y in range(yticks):
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    74
                if y%5==0:
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    75
                     canvas.setStrokeColorRGB(1,0,0)
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    76
                canvas.line(0,y*10,xticks*10,y*10)
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    77
                if y%5==0:
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    78
                     canvas.setStrokeColorRGB(0,1,0)
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    79
            for x in range(xticks):
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    80
                if x%5==0:
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    81
                     canvas.setStrokeColorRGB(1,0,0)
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    82
                canvas.line(x*10,yticks*10,x*10,0)
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    83
                if x%5==0:
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    84
                     canvas.setStrokeColorRGB(0,1,0)
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    85
            canvas.restoreState()
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    86
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    87
def main(filename, logomaker):
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    88
    from reportlab.pdfgen import canvas
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    89
    c = canvas.Canvas(filename)
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    90
    #c.translate(inch,inch)
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    91
    # scale each point to a quarter inch/10
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    92
    #tqinch = inch/40.0
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    93
    #c.scale(tqinch, tqinch)
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    94
    logomaker.draw(c)
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    95
    c.save()
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    96
    
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    97
if __name__=="__main__":
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    98
    logomaker = ReportLabLogo(inch, 8*inch, powered_by=1)
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
    99
    main("logo.pdf", logomaker)
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
   100
    
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
   101
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
   102
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
   103
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
   104
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
   105
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
   106
19b843a1f8f6 initial checkin
andy_robinson
parents:
diff changeset
   107