예제 #1
0
 def afterDrawPage(self, canvas, doc):
     order = self.order
     canvas.saveState()
     left_text = "The Bob Miller Book Room\nAcct#: {}".format(
         order.distributor.account_number)
     center_text = "PO#: {}\n{}".format(order.po, order.date)
     right_text = "{}".format(order.distributor.full_name)
     tx = create_text_object(canvas,
                             2 * cm,
                             PAGE_HEIGHT - 2 * cm,
                             left_text,
                             styleN,
                             align='left')
     canvas.drawText(tx)
     tx = create_text_object(canvas,
                             PAGE_WIDTH / 2.0,
                             PAGE_HEIGHT - 2 * cm,
                             center_text,
                             styleN,
                             align='center')
     canvas.drawText(tx)
     canvas.setFont(styleN.fontName, styleN.fontSize)
     canvas.drawRightString(PAGE_WIDTH - 2 * cm, PAGE_HEIGHT - 2 * cm,
                            right_text)
     canvas.restoreState()
예제 #2
0
    def draw_debug_outline(self, config):
        """draw an outline around the box"""
        canvas = self.canvas

        # don't muck up the external state
        canvas.saveState()

        # discreet - but visible
        canvas.setStrokeColorRGB(0.9, 0.7, 0.7)
        canvas.setFillColorRGB(0.6, 0.6, 0.6)
        canvas.setFont('Helvetica', 8)

        # draw a box to show the extent
        canvas.rect(
            config['x'],
            config['y'],
            config['w'],
            config['h'],
            stroke=1,
            fill=0,
        )

        # put in some debug info
        canvas.drawRightString(config['x'] + config['w'], config['y'] + 4,
                               ', '.join(config['content']))

        # restore state
        canvas.restoreState()
예제 #3
0
파일: pdf.py 프로젝트: hamed-moghimi/nikbad
def drawText(canvas, x, y, text, en = False, bold = False, size = 12):
    wrkText = text
    isArabic = False
    isBidi = False
    for c in wrkText:
        cat = unicodedata.bidirectional(c)
        if cat == "AL" or cat == "AN" or cat == "FA":
            isArabic = True
            isBidi = True
            break
        elif cat == "R" or cat == "RLE" or cat == "RLO":
            isBidi = True
    if isArabic:
        wrkText = a_forms.fuse(wrkText)
        wrkText = a_process.shape(wrkText)

    if isBidi:
        wrkText = get_display(wrkText)

    if bold:
        canvas.setFont('BNazanin', size)
    else:
        canvas.setFont('Nazanin', size)

    canvas.drawRightString(x, canvas._pagesize[1] - y, wrkText)
예제 #4
0
    def draw_debug_outline(self, config ):
        """draw an outline around the box"""
        canvas = self.canvas

        # don't muck up the external state
        canvas.saveState()

        # discreet - but visible
        canvas.setStrokeColorRGB( 0.9, 0.7, 0.7 )
        canvas.setFillColorRGB(   0.6, 0.6, 0.6 )
        canvas.setFont( 'Helvetica', 8 )

        # draw a box to show the extent
        canvas.rect(
            config['x'], config['y'], config['w'], config['h'], 
            stroke=1, fill=0,
        )
        
        # put in some debug info
        canvas.drawRightString(
            config['x'] + config['w'],
            config['y'] + 4,
            ', '.join(config['content'])
        )
        
        # restore state
        canvas.restoreState()
예제 #5
0
def header(canvas, signup, entry, metadata):
    year = int(signup.get('year'))

    # Prints Show info
    canvas.setFont("Helvetica-Bold", 20)
    canvas.drawString(inch, 10 * inch, "That Takes the Cake! " + str(year))
    canvas.setFont("Helvetica", 14)
    canvas.drawString(inch, 9.75 * inch, "Cake & Sugar Art Show & Competition")
    canvas.drawString(inch, 9.50 * inch, "Capital Confectioners, Austin, TX")

    canvas.drawString(inch, 9.25 * inch, get_show_start_date(year) + " & " + get_show_end_date(year))

    # Print entry number, division & category
    canvas.setFont("Helvetica-Bold", 20)
    canvas.drawRightString(7.75 * inch, 10 * inch, "Entry #" + str(entry.get('id')))
    canvas.setFont("Helvetica", 12)
    if (entry.get('category').startswith('Showcakes')):
        canvas.drawRightString(7.75 * inch, 9.75 * inch, entry.get('category'))
    elif _is_tasting(metadata, entry):
        canvas.drawRightString(7.75 * inch, 9.75 * inch, entry.get('category'))
    else:
        className = signup.get('class', '')
        canvas.drawRightString(7.75 * inch, 9.75 * inch, className)
        if (className):
            if ((className.find('Child') < 0) and (className.find('Junior') < 0)):
                canvas.drawRightString(7.75 * inch, 9.50 * inch, entry.get('category'))
    canvas.setFont("Helvetica", 14)
예제 #6
0
def addPageNumber(canvas, doc):
    """
    Add the page number
    """
    page_num = canvas.getPageNumber()
    text = "Page #%s" % page_num
    canvas.drawRightString(200*mm, 20*mm, text)
예제 #7
0
    def header(self, canvas, doc):
        # Logos
        canvas.saveState()
        canvas.drawImage(LOGO_EPC,
                         doc.leftMargin,
                         doc.height - 1.5 * cm,
                         5 * cm,
                         3 * cm,
                         preserveAspectRatio=True)
        canvas.drawImage(LOGO_ESNE,
                         doc.width - 2.5 * cm,
                         doc.height - 1.2 * cm,
                         5 * cm,
                         3 * cm,
                         preserveAspectRatio=True)

        # Section and subject
        x = doc.leftMargin
        y = doc.height - 2.5 * cm
        canvas.setFont('Helvetica-Bold', 10)
        canvas.line(x, y, x + doc.width, y)
        y -= 0.4 * cm
        canvas.drawString(x, y, self.section)
        canvas.drawRightString(x + doc.width, y, self.subject)
        y -= 0.2 * cm
        canvas.line(x, y, x + doc.width, y)

        # Footer
        canvas.line(doc.leftMargin, 1 * cm, doc.width + doc.leftMargin, 1 * cm)
        footer = Paragraph(settings.PDF_FOOTER_TEXT, style_footer)
        w, h = footer.wrap(doc.width, doc.bottomMargin)
        footer.drawOn(canvas, doc.leftMargin, h)
        canvas.restoreState()
예제 #8
0
    def myPage(canvas, doc):
        canvas.saveState()  # save the current state
        canvas.setFont('InconsolataBold', 16)  # set the font for the name
        canvas.drawString(
            .4 * inch,
            HEIGHT - (.4 * inch),
            contact['name'])  # draw the name on top left page 1
        canvas.setFont('Inconsolata', 8)  # sets the font for contact
        canvas.drawRightString(
            WIDTH - (.4 * inch),
            HEIGHT - (.4 * inch),
            contact['website'])  
        canvas.line(.4 * inch, HEIGHT - (.47 * inch), 
            WIDTH - (.4 * inch), HEIGHT - (.47 * inch))
        canvas.drawString(
            .4 * inch,
            HEIGHT - (.6 * inch),
            contact['phone'])
        canvas.drawCentredString(
			WIDTH / 2.0,
			HEIGHT - (.6 * inch),
			contact['address'])
        canvas.drawRightString(
			WIDTH - (.4 * inch),
			HEIGHT - (.6 * inch),
			contact['email'])
        # restore the state to what it was when saved
        canvas.restoreState()
 def myFirstPage(self, canvas, doc):
     canvas.saveState()
     canvas.drawImage("Logo.png", 10, 24 * cm)
     canvas.setFont('Times-Bold', 20)
     canvas.drawCentredString(1 * self.PageWidth / 2, self.PageHeight - 30,
                              self.Title)
     canvas.setFont('Helvetica', 9)
     canvas.drawString(inch, 0.75 * inch, "Page 1 / %s" % self.pageinfo)
     canvas.setFont("Helvetica", 12)
     x = 3 * cm
     y = self.PageHeight - 8 * cm
     canvas.drawString(x, y, "Professeur : " + self.rapport.prof)
     canvas.drawString(x, y - 2 * cm, "Lieu : " + self.rapport.lieu)
     canvas.drawString(x, y - 1 * cm, "Matière : " + self.rapport.matiere)
     canvas.drawString(
         x, y - 3 * cm, "Date : " + str(self.rapport.hoy.day) + "/" +
         str(self.rapport.hoy.month) + "/" + str(self.rapport.hoy.year) +
         " à " + str(self.rapport.hour) + "h" + str(self.rapport.minute))
     canvas.drawRightString(
         20 * cm, y,
         "Eleve : " + self.rapport.prenom + " " + self.rapport.nom)
     canvas.drawRightString(20 * cm, y - 1 * cm,
                            "Classe : " + self.rapport.classe)
     canvas.drawString(
         x, y - 4 * cm,
         "Punition demandée par l'enseignant : " + self.rapport.punition)
     canvas.drawString(
         x, y - 5 * cm,
         "Sanction demandée par l'enseignant : " + self.rapport.sanction)
     canvas.drawString(x, y - 6 * cm,
                       "Décision de la Direction, ou du CPE : ")
     canvas.drawString(x, y - 8 * cm, "Motifs : ")
     canvas.restoreState()
예제 #10
0
파일: geninformes.py 프로젝트: Virako/fpinn
def el_encogedor_de_fuentes_de_doraemon(canvas, fuente, tamannoini, xini, xfin, y, texto, alineacion = -1):
    """
    Comenzando por el tamaño inicial "tamannoini", encoge el texto 
    hasta que quepa en los límites fijados y después lo escribe.
    Convierte el texto por si está en una codificación no soportada.
    Al finalizar, devuelve las propiedades de texto del canvas a 
    su estado original y la fuente a su tamaño inicial.
    NO AVANZA LÍNEA.
    Si alineacion == -1: Alineación a la izquierda. Si 0, centrado y si 1, a la derecha.
    """
    # PLAN: No estaría mal pasar un tamaño mínimo de fuente, y si se alcanza o se supera, cortar la línea con 
    # agregarFila y el último tamaño de fuente válido. Claro que entonces habría que devolver también las líneas 
    # avanzadas, etc...
    canvas.saveState()
    size = tamannoini
    texto = escribe(texto)
    while canvas.stringWidth(texto, fuente, size) > (xfin - xini) and size > 4:
        size -= 1
    canvas.setFont(fuente, size)
    if alineacion == -1:
        canvas.drawString(xini, y, texto)
    elif alineacion == 1:
        canvas.drawRightString(xfin, y, texto)
    elif alineacion == 0:
        canvas.drawCentredString((xfin + xini) / 2.0, y, texto)
    else:
        print "geninformes.py::el_encogedor_de_fuentes_de_doraemon -> Error alineación. Uso alineación a la izquierda por defecto."
        canvas.drawString(xini, y, texto)
    canvas.restoreState()
예제 #11
0
def create_later_pages(canvas, doc):
    canvas.saveState()
    canvas.setFont('Helvetica', 10)
    canvas.drawString(BORDER_HORIZONTAL, BORDER_VERTICAL, TITLE)
    canvas.drawRightString(PAGE_WIDTH - BORDER_HORIZONTAL, BORDER_VERTICAL,
                           "Seite {}".format(doc.page))
    canvas.restoreState()
예제 #12
0
 def _add_page_outline(self, canvas):
     start_posn = self.start_posn
     canvas.setLineWidth(2)
     canvas.rect(cm, cm, PAGE_WIDTH - 2 * cm, PAGE_HEIGHT - 2 * cm)
     canvas.drawImage(LOGO_PATH,
                      0.5 * inch,
                      start_posn,
                      height=0.5 * inch,
                      width=1.875 * inch)
     canvas.setFont('Helvetica-Bold', 24)
     canvas.drawRightString(PAGE_WIDTH - (0.5 * inch),
                            start_posn + 0.15 * inch, 'REGISTRATION FORM')
     footer_text = 'This form created on '
     footer_text += datetime.now().strftime('%Y-%m-%d %I:%M:%S %p')
     canvas.setFont('Helvetica', 9)
     canvas.drawRightString(PAGE_WIDTH - (0.5 * inch), 0.5 * inch,
                            footer_text)
     self.start_posn = start_posn - 0.4 * inch
     sales_rep_text = 'BOOKING REP: '
     if self.user.first_name or self.user.last_name:
         sales_rep_text += self.user.first_name + ' ' + self.user.last_name
     else:
         sales_rep_text += self.user.username
     canvas.setFont('Helvetica-Bold', 9.5)
     canvas.drawString(0.5 * inch, 0.5 * inch, sales_rep_text)
예제 #13
0
def _draw_subsection(canvas, yc, title_left, title_middle, title_right, text_tuples):
    if title_left or title_middle or title_right:
        canvas.setFont(SUBSECTION_TITLE_FONT, SUBSECTION_FONT_SIZE)
        title_y = yc - SUBSECTION_FONT_SIZE
        if title_left:
            title_x = H_TEXT_MARGIN
            canvas.drawString(title_x, title_y, title_left)
        if title_middle:
            title_x = RESUME_PAGE_SIZE[0] / 2
            canvas.drawCentredString(title_x, title_y, title_middle)
        if title_right:
            title_x = RESUME_PAGE_SIZE[0] - H_TEXT_MARGIN
            canvas.drawRightString(title_x, title_y, title_right)        
        yc = title_y - V_SEPARATOR
        
    canvas.setFont(SUBSECTION_FONT, SUBSECTION_FONT_SIZE)
    for (draw_bullet, text) in text_tuples:
        if draw_bullet:
            text = u"•  " + unicode(text)
            
        lines = _break_text(text, RESUME_PAGE_SIZE[0] - (2*H_TEXT_MARGIN + SUBSECTION_H_INDENT), SUBSECTION_FONT, SUBSECTION_FONT_SIZE)
        
        line_x = H_TEXT_MARGIN + SUBSECTION_H_INDENT                
        for line in lines:
            line_y = yc - SUBSECTION_FONT_SIZE        
            canvas.drawString(line_x, line_y, line)
            yc = line_y - V_SEPARATOR
    
    return yc - SUBSECTION_V_SPACER
    def draw(self):
        canvas = self.canv
        if type(self.labelLigne) != six.text_type :
            self.labelLigne = self.labelLigne.decode("iso-8859-15")
        canvas.setFont("Helvetica", 9)
        # Dessin du label de la ligne
        xRightLabel = COORD_LIGNE[0] - 10
        yBasLabel = 0
        if MODE_TEXTE == 2 : yBasLabel = yBasLabel + 6
        canvas.drawRightString(xRightLabel, yBasLabel + 3, self.labelLigne)
        
        # Dessin test de la ligne totale
##        canvas.rect(COORD_LIGNE[0], 0, COORD_LIGNE[1]-COORD_LIGNE[0], 10)
        tailleVirtuelleLigne = COORD_LIGNE[1]-COORD_LIGNE[0]
        largeurMargesFeuille = 75
        posXGaucheLigne = COORD_LIGNE[0]
        taillePapierLigne = LARGEUR_PAGE- (largeurMargesFeuille*2) - posXGaucheLigne
        facteurAgrandissement = (taillePapierLigne *1.0) / tailleVirtuelleLigne
        # Dessine la ligne
##        canvas.setFillColorRGB(0.9, 0.9, 0.5)
##        canvas.rect(COORD_LIGNE[0], 0, taillePapierLigne, HAUTEUR_BARRE, fill=0)
        
        # Dessin de toutes les barres de la ligne
        for barre in self.listeBarresLigne :
            IDpresence, IDpersonne, date, heureDebut, heureFin, IDcategorie, intitule, posG, posD, posYhaut, posYbas = barre
            x = posG
            y = 0
            largeur = posD - posG
            hauteur = HAUTEUR_BARRE - 3
            label = intitule
            self.Barre(canvas, x, y, largeur, hauteur, label, heureDebut, heureFin, IDcategorie, facteurAgrandissement)
예제 #15
0
def draw_page(canvas, doc):
    """Method to format my pdfs."""
    title = "CPIMS"
    author = "CPIMS"
    canvas.setTitle(title)
    canvas.setSubject(title)
    canvas.setAuthor(author)
    canvas.setCreator(author)
    # footer = []
    # Put some data into the footer
    # Frame(2 * cm, 0, 17 * cm, 4 * cm).addFromList(footer, canvas)
    canvas.saveState()

    # Header
    canvas.drawString(0.5 * inch, 8 * inch, doc.fund_name)
    canvas.drawRightString(10.5 * inch, 8 * inch, doc.report_info)

    # Footers
    canvas.setFont("Helvetica", 8)
    canvas.drawString(0.5 * inch, 0.5 * inch, '')
    canvas.drawRightString(
        11.2 * inch, 0.38 * inch, 'Source : %s' % (doc.source))

    canvas.setFont("Helvetica", 240)
    # self.setFont("Helvetica", 8)
    canvas.setStrokeGray(0.90)
    canvas.setFillGray(0.90)
    # canvas.rotate(45)

    canvas.restoreState()
예제 #16
0
 def addPageNumber(canvas, doc):
     """
     Add the page number
     """
     page_num = canvas.getPageNumber()
     text = "%s" % page_num
     canvas.drawRightString(200*mm, 20*mm, text)
예제 #17
0
    def draw(self):
        canvas = self.canv
        if type(self.labelLigne) != six.text_type:
            self.labelLigne = self.labelLigne.decode("iso-8859-15")
        canvas.setFont("Helvetica", 9)
        # Dessin du label de la ligne
        xRightLabel = COORD_LIGNE[0] - 10
        yBasLabel = 0
        if MODE_TEXTE == 2: yBasLabel = yBasLabel + 6
        canvas.drawRightString(xRightLabel, yBasLabel + 3, self.labelLigne)

        # Dessin test de la ligne totale
        ##        canvas.rect(COORD_LIGNE[0], 0, COORD_LIGNE[1]-COORD_LIGNE[0], 10)
        tailleVirtuelleLigne = COORD_LIGNE[1] - COORD_LIGNE[0]
        largeurMargesFeuille = 75
        posXGaucheLigne = COORD_LIGNE[0]
        taillePapierLigne = LARGEUR_PAGE - (largeurMargesFeuille *
                                            2) - posXGaucheLigne
        facteurAgrandissement = (taillePapierLigne *
                                 1.0) / tailleVirtuelleLigne
        # Dessine la ligne
        ##        canvas.setFillColorRGB(0.9, 0.9, 0.5)
        ##        canvas.rect(COORD_LIGNE[0], 0, taillePapierLigne, HAUTEUR_BARRE, fill=0)

        # Dessin de toutes les barres de la ligne
        for barre in self.listeBarresLigne:
            IDpresence, IDpersonne, date, heureDebut, heureFin, IDcategorie, intitule, posG, posD, posYhaut, posYbas = barre
            x = posG
            y = 0
            largeur = posD - posG
            hauteur = HAUTEUR_BARRE - 3
            label = intitule
            self.Barre(canvas, x, y, largeur, hauteur, label, heureDebut,
                       heureFin, IDcategorie, facteurAgrandissement)
예제 #18
0
 def myLaterPages(canvas, doc):
     canvas.saveState()
     # canvas.setFont('Times-Roman',bodyfontsize)
     canvas.drawString(doc.leftMargin / 2, doc.bottomMargin / 2,
                       "Page %d" % (doc.page))
     canvas.drawRightString(PAGE_WIDTH - doc.leftMargin / 2,
                            doc.bottomMargin / 2, pageinfo)
     canvas.restoreState()
예제 #19
0
파일: pdf.py 프로젝트: wichmann/bbss
def create_first_page(canvas, doc):
    canvas.saveState()
    canvas.setFont('Helvetica', 16)
    canvas.drawCentredString(PAGE_WIDTH/2.0, PAGE_HEIGHT-58, TITLE)
    canvas.setFont('Helvetica', 10)
    canvas.drawString(BORDER_HORIZONTAL, BORDER_VERTICAL, TITLE)
    canvas.drawRightString(PAGE_WIDTH-BORDER_HORIZONTAL , BORDER_VERTICAL, "Seite 1")
    canvas.restoreState()
예제 #20
0
def addPageNumber(canvas, doc):
    """
    Add the page number
    """
    page_num = canvas.getPageNumber()
    text = "Page %s" % page_num
    canvas.setFont("Helvetica", 9)
    canvas.drawRightString(225 * cm, 7 * cm, text)
예제 #21
0
 def addPageNumber1(canvas, doc):
     """
     Add the page number
     """
     temp_pdf=PdfFileReader(open("output.pdf", "rb"))
     page_num = temp_pdf.getNumPages()+1
     text = "%s" % page_num
     canvas.drawRightString(200*mm, 20*mm, text)
 def func(canvas, doc):
     width, height = letter
     margin = 0.66 * 72
     canvas.saveState()
     canvas.setFillColor("gray")
     canvas.drawString(margin, height - margin, "CONFIDENTIAL")
     canvas.drawRightString(width - margin, height - margin,
                            str(timezone.now()))
     canvas.restoreState()
예제 #23
0
def fonts(canvas):
    text = "Now is the time for all good men to..."
    x = 1.8 * inch
    y = 2.7 * inch
    for font in canvas.getAvailableFonts():
        canvas.setFont(font, 10)
        canvas.drawString(x, y, text)
        canvas.setFont("Helvetica", 10)
        canvas.drawRightString(x - 10, y, font + ":")
        y = y - 13
   def pageFooter(self, canvas, doc):
      canvas.saveState()
      canvas.setFont( self.footerFontName, self.footerFontSize, self.footerFontLeading )

      # draw the doc info
      canvas.drawString ( self.footerLeftEdge, self.footerHeight, self.pageInfo )

      # draw the page number
      canvas.drawRightString ( self.footerRightEdge, self.footerHeight, "Page {0}".format (doc.page) )
      canvas.restoreState()
예제 #25
0
 def numeroPagina(self, canvas, doc):
     """
     agrega el numero de pagina al documento
     :param canvas:
     :param doc:documento pdf
     :return: None
     """
     num = canvas.getPageNumber()
     text = "Página %s" % num
     canvas.drawRightString(190 * mm, 20 * mm, text)
예제 #26
0
 def first_page(self, canvas, doc):
     
     canvas.setFont("Times-Roman", 10)
     canvas.drawString(65,720,"Finance report for : %s %s" %(datetime.date.today().strftime("%B"), datetime.date.today().strftime("%Y")))
     canvas.drawString(65,705,'Report generated on : %s' %str("{:%d.%m.%Y}".format(datetime.datetime.now())))
     canvas.setLineWidth(.2)
     canvas.line(50,695,540,695)
     
     page_num = canvas.getPageNumber()
     text = "Page #%s" % page_num
     canvas.drawRightString(200*mm, 20*mm, text)
예제 #27
0
def create_first_page(canvas, doc):
    canvas.saveState()
    canvas.setFont('Helvetica', 16)
    canvas.drawCentredString(PAGE_WIDTH / 2.0, PAGE_HEIGHT - 98, TITLE)
    canvas.setFont('Helvetica', 11)
    canvas.drawCentredString(PAGE_WIDTH / 2.0, PAGE_HEIGHT - 130, AUTHOR)
    canvas.setFont('Helvetica', 10)
    canvas.drawString(BORDER_HORIZONTAL, BORDER_VERTICAL, TITLE)
    canvas.drawRightString(PAGE_WIDTH - BORDER_HORIZONTAL, BORDER_VERTICAL,
                           "Seite 1")
    canvas.restoreState()
예제 #28
0
 def func(canvas, doc):
     width, height = letter
     margin = 0.66 * 72
     canvas.saveState()
     canvas.setFillColor('gray')
     #canvas.setFont('OpenSans',12)
     canvas.drawString(margin, height - margin, "CONFIDENTIAL")
     canvas.drawRightString(width - margin, height - margin, localtime(timezone.now()).strftime(date_format))
     if recipient:
         canvas.drawString(margin, margin, "Intended for: Title IX Coordinator %s" % recipient)
     canvas.restoreState()
예제 #29
0
def p1_fonts(canvas):
    from reportlab.lib.units import inch
    text = "Now is the time for all good men to...こんにちは、世界!"
    x = 1.8 * inch
    y = 2.7 * inch
    for font in canvas.getAvailableFonts():
        canvas.setFont(font, 10)
        canvas.drawString(x, y, text)
        canvas.setFont("Helvetica", 10)
        canvas.drawRightString(x - 10, y, font + ":")
        y = y - 13
예제 #30
0
def _draw_contact_lines(canvas, contact_lines):
    yc = RESUME_PAGE_SIZE[1] - V_TOP_MARGIN
    canvas.setFont(CONTACT_FONT, CONTACT_FONT_SIZE)
    contact_x = RESUME_PAGE_SIZE[0] - H_TEXT_MARGIN
    
    for contact in contact_lines:
        contact_y = yc - CONTACT_FONT_SIZE
        canvas.drawRightString(contact_x, contact_y, contact)
        yc = contact_y - V_SEPARATOR
        
    return yc
예제 #31
0
파일: e6.py 프로젝트: leogao/examples
def fonts(canvas):
    from reportlab.lib.units import inch
    text = "Now is the time for all good men to..."
    x = 1.8*inch
    y = 2.7*inch
    for font in canvas.getAvailableFonts():
        canvas.setFont(font, 10)
        canvas.drawString(x,y,text)
        canvas.setFont("Helvetica", 10)
        canvas.drawRightString(x-10,y, font+":")
        y = y-13
예제 #32
0
def estruturar_pdf(canvas, tipo, datahora, request):
    canvas, posicao_y = gerar_cabecalho(canvas)
    if tipo == 'CAUTELA':
        canvas, posicao_y = gerar_texto_cautela(canvas, posicao_y)
        canvas = gerar_tabela_cautela(canvas, posicao_y, request)
        canvas = gerar_rodape(canvas, datahora)
        canvas = gerar_assinatura(canvas, request)
    else:
        canvas.drawCentredString(width/2, posicao_y, 'Pronto da reserva de material do Pelotão Posto de Comando')
        canvas = gerar_tabela(canvas, posicao_y)
        canvas.drawRightString(width-10, 10, 'DATA: ' + datahora.strftime("%d-%m-%Y %H:%M:%S"))
    return canvas
예제 #33
0
파일: mark.py 프로젝트: GaretJax/pdfedit
 def render(self, canvas, context):
     canvas.rect(self.left_margin, self.bottom_margin,
                 self.box_width, self.box_height,
                 stroke=0, fill=1)
     canvas.setFillColor(colors.black)
     canvas.drawString(
         self.left_margin + 2 * mm, self.bottom_margin + 2 * mm,
         'ID: {}'.format(context['student']['id']))
     canvas.drawRightString(
         self.left_margin + self.box_width - 2 * mm,
         self.bottom_margin + 2 * mm,
         '(Seite {})'.format(context['page_num']))
    def draw(self):
        canvas = self.canv
        couleurDate = None
        positionSeparation = 20
        
        # Couleur de la case Date de la journée
        if AFFICHER_VACANCES == True and self.dateDD in LISTE_VACANCES : couleurDate = COULEUR_VACANCES
        if AFFICHER_WE == True and (self.dateDD.weekday() == 5 or self.dateDD.weekday() == 6) : couleurDate = COULEUR_WE
        if AFFICHER_FERIES == True and self.dateDD in LISTE_FERIES : couleurDate = COULEUR_FERIES
        
        if couleurDate != None :
            r, g, b = ConvertCouleur(couleurDate)
            canvas.setFillColorRGB(r, g, b)
            canvas.rect(0, 0, positionSeparation, self.hauteurCase, fill=1, stroke=False)
        
        # Texte date
        canvas.setFillColorRGB(0, 0, 0)
        canvas.setFont("Helvetica", 7)
        canvas.drawRightString(positionSeparation-2, 2, self.labelDate)
        
        # Trait séparation Date et Heures
        canvas.setLineWidth(0.25)
        canvas.line(positionSeparation, 0, positionSeparation, self.hauteurCase)
        
        # Si aucune présence ce jour -là
        if len(self.dictBarres) == 0 : return

        # Récup du nbre total d'heure de la journée
        totalJour = self.dictBarres["totalJour"]
        
        # Transformation du nombre d'heures par catégorie en pourcentage
        listeCategories = []
        for IDcategorie, nbreHeures in self.dictBarres.items():
            if IDcategorie != "totalJour" :
                largeurBarre = nbreHeures * 1.0 * (self.largeurCase-positionSeparation-0.25) / totalJour
                listeCategories.append( (largeurBarre, IDcategorie) )
        listeCategories.sort()
        
        # Création des graphes
        if AFFICHER_COULEUR_CATEGORIES == True :
            positionTemp = positionSeparation+0.25
            for largeurBarre, IDcategorie in listeCategories :
                r, g, b = ConvertCouleur(FormateCouleur(DICT_CATEGORIES[IDcategorie][2]))
                canvas.setFillColorRGB(r, g, b)
                canvas.rect(positionTemp, 0, largeurBarre, self.hauteurCase, fill=1, stroke=False)
                positionTemp += largeurBarre
        
        # Label Total Heure de la journée
        if AFFICHER_HEURES == True :
            canvas.setFillColorRGB(0, 0, 0)
            canvas.setFont("Helvetica", 7)
            canvas.drawRightString(self.largeurCase-2, 2, "%s" % minutesEnHeures(totalJour))
예제 #35
0
def framePage(canvas, doc):
    # canvas.drawImage("snkanim.gif", 36, 36)
    canvas.saveState()
    canvas.setStrokeColorRGB(1, 0, 0)
    canvas.setLineWidth(5)
    canvas.line(66, 72, 66, PAGE_HEIGHT - 72)

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

    canvas.setFont("Times-Roman", 12)
    canvas.drawString(4 * inch, 0.75 * inch, "Page %d" % canvas.getPageNumber())
    canvas.restoreState()
예제 #36
0
    def addPageNumber(canvas, doc):
        """
		Add the page numbers to the document
		"""
        width, height = A4  # this is useful when defining where to plot something on the page

        page_num = canvas.getPageNumber()
        text = "%s" % page_num
        header = "TIC {}".format(tic)

        canvas.setFont('Helvetica', 8)
        canvas.drawString(width * 0.85, height * 0.95, header)
        canvas.drawRightString(200 * mm, 10 * mm, text)
 def func(canvas, doc):
     width, height = letter
     margin = 0.66 * 72
     canvas.saveState()
     canvas.setFillColor('gray')
     canvas.drawString(margin, height - margin, "CONFIDENTIAL")
     canvas.drawRightString(
         width - margin, height - margin, str(timezone.now()))
     canvas.drawString(
         margin, margin,
         f"Intended for: Title IX Coordinator {recipient}",
     )
     canvas.restoreState()
예제 #38
0
 def addPageNumber(self, canvas, doc):
     self.pageNum = canvas.getPageNumber()
     text = "Page %s" % str(self.pageNum + 2)
     topTitle = self.topTitle.split(", ")
     topTitle = topTitle[len(topTitle) - 1]
     PresidenNameOccurs = False
     canvas.setLineWidth(3)
     text2 = ""
     topTitle2 = ""
     for item in self.articleNum:
         if item["pNum"] == self.pageNum:
             if item["name"] == "For the European Parliament":
                 topTitle = ""
                 PresidenNameOccurs = True
             else:
                 topTitle2 += ", " + item["name"] if topTitle2 else item[
                     "name"]
     canvas.setFont("Helvetica-Bold", 9)
     if self.pageNum % 2 == 0:
         canvas.drawString(0.5 * inch, 8.6 * inch, topTitle2 or topTitle)
     else:
         canvas.drawRightString(5.5 * inch, 8.6 * inch, topTitle2
                                or topTitle)
     canvas.setFont("Helvetica-Bold", 10)
     canvas.drawRightString(1 * inch, 8.4 * inch, "English")
     canvas.drawRightString(5.5 * inch, 8.4 * inch, self.lang)
     canvas.line(0.5 * inch, 8.3 * inch, 5.5 * inch, 8.3 * inch)
     canvas.setFont("Helvetica", 10)
     canvas.drawRightString(5.5 * inch, 0.3 * inch, text)
     canvas.line(0.5 * inch, 0.5 * inch, 5.5 * inch, 0.5 * inch)
     self.topTitle = "" if PresidenNameOccurs == True else (topTitle2
                                                            or topTitle)
예제 #39
0
 def func(canvas, doc):
     width, height = letter
     margin = 0.66 * 72
     canvas.saveState()
     canvas.setFillColor('gray')
     canvas.drawString(margin, height - margin, "CONFIDENTIAL")
     canvas.drawRightString(width - margin, height - margin,
                            str(timezone.now()))
     canvas.drawString(
         margin,
         margin,
         f"Intended for: Title IX Coordinator {recipient}",
     )
     canvas.restoreState()
예제 #40
0
def framePage(canvas,doc):
    #canvas.drawImage("snkanim.gif", 36, 36)
    canvas.saveState()
    canvas.setStrokeColorRGB(1,0,0)
    canvas.setLineWidth(5)
    canvas.line(66,72,66,PAGE_HEIGHT-72)

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

    canvas.setFont('Times-Roman',12)
    canvas.drawString(4 * inch, 0.75 * inch,
                        "Page %d" % canvas.getPageNumber())
    canvas.restoreState()
예제 #41
0
 def func(canvas, doc):
     width, height = letter
     margin = 0.66 * 72
     canvas.saveState()
     canvas.setFillColor('gray')
     #canvas.setFont('OpenSans',12)
     canvas.drawString(margin, height - margin, "CONFIDENTIAL")
     canvas.drawRightString(
         width - margin, height - margin,
         localtime(timezone.now()).strftime(date_format))
     if recipient:
         canvas.drawString(
             margin, margin,
             "Intended for: Title IX Coordinator %s" % recipient)
     canvas.restoreState()
예제 #42
0
 def afterDrawPage(self, canvas, doc):
     order = self.order
     canvas.saveState()
     left_text = "The Bob Miller Book Room\nAcct#: {}".format(order.distributor.account_number)
     center_text = "PO#: {}\n{}".format(order.po, order.date)
     right_text = "{}".format(order.distributor.full_name)
     tx = create_text_object(canvas, 2 * cm, PAGE_HEIGHT - 2 * cm,
         left_text, styleN, align='left')
     canvas.drawText(tx)
     tx = create_text_object(canvas, PAGE_WIDTH / 2.0, PAGE_HEIGHT - 2 * cm,
         center_text, styleN, align='center')
     canvas.drawText(tx)
     canvas.setFont(styleN.fontName, styleN.fontSize)
     canvas.drawRightString(PAGE_WIDTH - 2 * cm, PAGE_HEIGHT - 2 * cm, right_text)
     canvas.restoreState()
예제 #43
0
def addFooter(canvas, doc):
    canvas.setFont('Arial',12)
    page_num = canvas.getPageNumber()
    text = "Page %s" % page_num
    canvas.drawRightString(200*mm, 10*mm, text)
    canvas.drawRightString(200*mm, 20*mm, "Signature_________________ Date:_______________")
    canvas.drawRightString(110*mm, 10*mm, "REPORT Model XXXX Generated on:" + datetime.datetime.now().strftime('%Y%m%d%H%M%S'))
    canvas.drawRightString(50*mm, 20*mm, "Proprietary Document")
예제 #44
0
파일: e5.py 프로젝트: leogao/examples
def textsize(canvas):
    from reportlab.lib.units import inch
    from reportlab.lib.colors import magenta, red
    canvas.setFont("Times-Roman", 20)
    canvas.setFillColor(red)
    canvas.drawCentredString(2.75*inch, 2.5*inch, "Font size examples")
    canvas.setFillColor(magenta)
    size = 7
    y = 2.3*inch
    x = 1.3*inch
    for line in lyrics:
        canvas.setFont("Helvetica", size)
        canvas.drawRightString(x,y,"%s points: " % size)
        canvas.drawString(x,y, line)
        y = y-size*1.2
        size = size+1.5
예제 #45
0
def AllPageSetup(canvas, doc):

    canvas.saveState()

    #header
    canvas.drawString(0.5 * inch, 8 * inch, doc.fund.name)
    canvas.drawRightString(10.5 * inch, 8 * inch, doc.report_info)

    #footers
    canvas.drawString(0.5 * inch, 0.5 * inch, 'Larry Co.')
    canvas.drawRightString(10.5 * inch, 0.5 * inch, 'Page %d' % (doc.page))

    canvas.setFont("Arial", 240)
    canvas.setStrokeGray(0.90)
    canvas.setFillGray(0.90)
    canvas.drawCentredString(5.5 * inch, 3.25 * inch, doc.watermark)

    canvas.restoreState()
예제 #46
0
파일: cards2.py 프로젝트: malkia/cards
def on_page(canvas,doc):
    margin = DPI * 0.25
    gap = DPI * 0.25
    row = rows[doc.page-1]
    canvas.saveState()
#    canvas.rect(margin,margin,PAGE_WIDTH-margin*2,PAGE_HEIGHT-margin*2)
    global SMALL
    if TINY:
        canvas.setFont("ComicBold",20)
    elif SMALL:
        canvas.setFont("ComicBold",20) # was 20
    else:
        canvas.setFont("ComicBold",25)
    global teacher_grade
    grade = teacher_grade
    if TINY:
        row['Project Title'] = row['First Name'] + ' ' + row['Last Name']
        row['Project Type'] = grade
        grade = ''
        row['First Name'] = ''
        row['Last Name'] = ''
    project_title = row['Project Title'] or ''
    project_type = row['Project Type'] or ''
    if project_title == '':
        project_title = project_type
        project_type = ''
    title = project_title.strip()
    if not title:
        title = '' #'Untitled'
    canvas.drawCentredString(PAGE_WIDTH*0.5,PAGE_HEIGHT-margin*4,title)
    canvas.setFont("ComicBold",18)
    if SMALL or TINY:
        canvas.setFont("ComicBold",16)
    canvas.drawRightString(PAGE_WIDTH - DPI*0.5,gap*5,row['First Name'] + ' ' + row['Last Name'])
    canvas.setFont("Comic",15)
    if SMALL or TINY:
        canvas.setFont("ComicBold",13)
    canvas.drawRightString(PAGE_WIDTH - DPI*0.5,gap*4,grade)
    canvas.drawRightString(PAGE_WIDTH - DPI*0.5,gap*3,project_type)
    canvas.drawRightString(PAGE_WIDTH - DPI*0.5,gap*2,teacher_honorific+'. '+teacher_name+', Rm. '+str(teacher_room))
    style = ParagraphStyle(
        name='',
        leading=20,
        fontName='Comic',
        fontSize=15,
    )
    width = PAGE_WIDTH - gap*8
    height = PAGE_HEIGHT - gap*16
    project_description = row['Project Description'] or ''
    paragraph = Paragraph(project_description, style)
    w, h = paragraph.wrap(width, height)
    paragraph.drawOn(canvas,gap*4,PAGE_HEIGHT-gap*5-h)
    canvas.restoreState()
예제 #47
0
def seq_scale(canvas, scX, scY, incrT, incrN, dip, dop) :
    """Draws the sequence scale bar."""
    canvas.setLineWidth(1.2)
    canvas.setFillColor(black)
    incrCNT = 0							    # initialize count of increments
    psc = canvas.beginPath()
    psc.moveTo(scX, scY+dip-dop)		        # start at beginning (duh!)
    psc.lineTo(scX+incrT*incrN, scY+dip-dop)	# draw the scale baseline
    # draw ticks until the max number of increments is reached
    while incrCNT <= incrN :
        psc.moveTo(scX+incrT*incrCNT, scY+dip-dop)
        psc.lineTo(scX+incrT*incrCNT, scY+dip)
        incrCNT += 1
    canvas.drawPath(psc, stroke=1, fill=0)
    psc.close()
    # write out scale extremities values (needs hand-fix if not using kbs)
    canvas.setFont(rFont,NfSize)
    canvas.drawRightString(scX, scY+dip+dop, '0')
    canvas.drawString(scX+incrT*incrN, scY+dip+dop, str(incrN)+' kb')
예제 #48
0
def _footer(canvas, doc):
    splunkLayoutSettings = PAPERSIZES[doc.splunkPaperSize]
    canvas.saveState()
    canvas.setStrokeColorRGB(0.8, 0.8, 0.8)
    canvas.setLineWidth(1)  # hairline
    canvas.line(inch, inch, doc.width + inch, inch)
    canvas.setStrokeColorRGB(0.5, 0.5, 0.5)
    canvas.setFillColorRGB(0.586, 0.586, 0.586)
    canvas.drawRightString(doc.width + inch, 0.75 * inch - _TEXT_OFFSET,
                           "Page %d" % (doc.page))

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

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

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

    text = MAPHEADERTEXT
    date_now = datetime.datetime.now()
    date_formatted = (str(time.strftime("%b")) + " " + str(date_now.day) +
                      ", " + str(date_now.year))
    canvas.drawRightString(DOC.width - (DOC.rightMargin - 2.35 * inch),
                           0.5 * DOC.bottomMargin, date_formatted)
    canvas.setFillGray(0.70)
    canvas.drawString(DOC.leftMargin - 25, 0.5 * DOC.bottomMargin, text)
    canvas.setLineWidth(2)
    canvas.setStrokeColor(Color(0, 0.2627450980392157, 0.42745098039215684, 1))
    pagex = 47.5
    pagey = 0.75 * DOC.bottomMargin
    canvas.line(pagex, pagey, (PAGE_WIDTH - pagex), pagey)
    canvas.restoreState()
 def Barre(self, canvas, x, y, largeur, hauteur, label, heureDebut, heureFin, IDcategorie, facteurAgrandissement):
     # Dessin d'une barre       
     x = ((x-COORD_LIGNE[0]) * facteurAgrandissement) + COORD_LIGNE[0]
     largeur = largeur * facteurAgrandissement
     paddingTexte = 3
     nom, IDcat_parent, ordre, couleur, totalHeures = DICT_CATEGORIES[IDcategorie]
     r, g, b = ConvertCouleur(FormateCouleur(couleur))
     canvas.setFillColorRGB(r, g, b)
     canvas.rect(x, y, largeur, hauteur, fill=1)
     canvas.setFillColorRGB(0, 0, 0)
     canvas.setFont("Helvetica", 8)
     # Dessin des heures
     if MODE_TEXTE == 2 : y = y + 10
     heureDebut = str(heureDebut)[0:2] + "h" + str(heureDebut)[3:5]
     canvas.drawString(x + paddingTexte, y + paddingTexte, heureDebut)
     heureFin = str(heureFin)[0:2] + "h" + str(heureFin)[3:5]
     canvas.drawRightString(largeur + x - paddingTexte, y + paddingTexte, heureFin)
     # Dessin de l'intitulé
     if MODE_TEXTE == 2 and label != "" :
         canvas.drawString(x + paddingTexte, y + paddingTexte - 10, label)
예제 #51
0
def footer(canvas, DOC):
    """Draws the page footer"""
    arcpy.AddMessage("Drawing Footer...")
    canvas.saveState()
    canvas.setFont("Vera", 7.5)

    text = MAPHEADERTEXT
    date_now = datetime.datetime.now()
    date_formatted = (str(time.strftime("%b")) + " " + str(date_now.day) +
                      ", " + str(date_now.year))
    canvas.drawRightString(DOC.width - (DOC.rightMargin-2.35*inch),
                           0.5*DOC.bottomMargin, date_formatted)
    canvas.setFillGray(0.70)
    canvas.drawString(DOC.leftMargin - 25, 0.5*DOC.bottomMargin, text)
    canvas.setLineWidth(2)
    canvas.setStrokeColor(Color(0, 0.2627450980392157, 0.42745098039215684, 1))
    pagex = 47.5
    pagey = 0.75*DOC.bottomMargin
    canvas.line(pagex, pagey, (PAGE_WIDTH - pagex), pagey)
    canvas.restoreState()
예제 #52
0
 def _add_page_outline(self, canvas):
     start_posn = self.start_posn
     canvas.setLineWidth(2)
     canvas.rect(cm, cm, PAGE_WIDTH-2*cm, PAGE_HEIGHT-2*cm)
     canvas.drawImage(LOGO_PATH, 0.5*inch, start_posn,
                    height=0.5*inch, width=1.875*inch)
     canvas.setFont('Helvetica-Bold', 24)
     canvas.drawRightString(PAGE_WIDTH-(0.5*inch), start_posn + 0.15*inch,
                            'REGISTRATION FORM')
     footer_text = 'This form created on '
     footer_text += datetime.now().strftime('%Y-%m-%d %I:%M:%S %p')
     canvas.setFont('Helvetica', 9)
     canvas.drawRightString(PAGE_WIDTH-(0.5*inch), 0.5*inch, footer_text)
     self.start_posn = start_posn - 0.4 * inch
     sales_rep_text = 'BOOKING REP: '
     if self.user.first_name or self.user.last_name:
         sales_rep_text += self.user.first_name + ' ' + self.user.last_name
     else:
         sales_rep_text += self.user.username
     canvas.setFont('Helvetica-Bold', 9.5)
     canvas.drawString(0.5*inch, 0.5*inch, sales_rep_text)
예제 #53
0
def header(canvas, doc):
    # Save the state of our canvas so we can draw on it
    canvas.saveState()
    canvas.setFont("Times-Roman", 12)
    left = 0.98 * inch
    right = 600 - 0.59 * inch
    y = 731
    canvas.setTitle("documento_oficial_webCGAE")
    fn = os.path.join(os.path.dirname(os.path.abspath(__file__)),
                      'static/Atividades/icon_ifc2.jpg')
    canvas.drawImage(fn, 10.2 * cm, 770, width=40, height=40)
    canvas.drawCentredString(11.0 * cm, 760, "Ministério da Educação")
    canvas.drawCentredString(
        11.0 * cm, 747, "Secretaria de Educação Profissional e Tecnológica")
    canvas.drawCentredString(11.0 * cm, 735, "Instituto Federal Catarinense")
    canvas.line(left, y, right, y)

    canvas.setFont("Times-Roman", 10)
    canvas.line(left, y - 24.4 * cm, right, y - 24.4 * cm)
    fn = os.path.join(os.path.dirname(os.path.abspath(__file__)),
                      'static/Atividades/icon_ifc.png')
    canvas.drawImage(fn, left + 10, y - 25.7 * cm, width=140, height=35)
    canvas.drawRightString(550, y - 24.8 * cm,
                           "Rua das Missões, 100 - Ponta Aguda")
    canvas.drawRightString(550, y - 25.2 * cm, "Blumenau/SC - CEP: 89.051-000")
    canvas.drawRightString(550, y - 25.6 * cm,
                           "(47) 3331-7800 / [email protected]")

    # Release the canvas
    canvas.restoreState()
예제 #54
0
def header(canvas, doc):
    canvas.saveState()
    logo = "/Users/Julian/Documents/Numedi-Internship/2020/PatientRecordGen/Input/gnu.png"
    horizon_mgin = 20
    canvas.setLineWidth(.5)
    canvas.line(horizon_mgin, doc.height + doc.bottomMargin - 50,
                horizon_mgin + 100, doc.height + doc.bottomMargin - 50)

    # left side of header
    left_mgin = horizon_mgin

    # x-y coordinates of the logo, starting from the lower left hand corner
    # The logo's size is changed by changing its width. The heigh will resize to preserve the ratio of the png
    canvas.drawImage(logo,
                     horizon_mgin,
                     doc.bottomMargin + doc.height,
                     width=0.6 * inch,
                     preserveAspectRatio=True)

    canvas.setFont('Times-Roman', 10.5)
    canvas.drawString(left_mgin, doc.height + doc.bottomMargin, "Numedi")
    canvas.drawString(left_mgin, doc.height + doc.bottomMargin - 15,
                      "Protocol Dream State")
    canvas.drawString(left_mgin, doc.height + doc.bottomMargin - 30,
                      "Patient %s %s" % (subj_id, site_num))

    # right side of header
    right_mgin = doc.width + doc.leftMargin + doc.rightMargin - horizon_mgin
    canvas.drawRightString(right_mgin, doc.height + doc.bottomMargin,
                           "Page %d of %d" % (doc.page, numPages))
    canvas.setFont('Times-Italic', 10.5)
    canvas.drawRightString(right_mgin, doc.height + doc.bottomMargin - 15,
                           "Confidential")

    canvas.setFont('Courier-Bold', 12)
    canvas.drawString(horizon_mgin, doc.height + doc.bottomMargin - 45,
                      "Adverse Events")

    canvas.restoreState()
예제 #55
0
def capa(canvas, doc):
    cabecalho = Image('static/topFrame.png', 535, 63)
    w, h = cabecalho.wrap(doc.width, doc.topMargin)
    cabecalho.drawOn(canvas, doc.leftMargin + 5, doc.height + doc.topMargin - 40)

    canvas.setFont('Helvetica', 14)
    canvas.setFillColor(HexColor('#3366cc'))
    canvas.drawRightString(560, 220, doc_config['laudo'])
    canvas.setFont('Helvetica', 10)
    canvas.setFillColor(HexColor('#6a6a6a'))
    canvas.drawRightString(560, 180, doc_config['nome'])
    canvas.setFillColor(HexColor('#6a6a6a'))
    canvas.drawRightString(560, 160, doc_config['empresa'])
    canvas.setFillColor(HexColor('#6a6a6a'))
    canvas.drawRightString(560, 140, doc_config['cargo'])
예제 #56
0
    def _create_header(self, canvas, doc):
        #Draw the logo in the upper left
        if self.company.lower() == 'dellarobbia thailand':
            path = """https://s3-ap-southeast-1.amazonaws.com/media.dellarobbiathailand.com/logo/form_logo.jpg"""
        else:
            path = "https://s3-ap-southeast-1.amazonaws.com/media.dellarobbiathailand.com/logo/Alinea-Logo_Master.jpg"
        
        # Read image from link
        img = utils.ImageReader(path)
        
        # Get Size
        img_width, img_height = img.getSize()
        new_width = (img_width * logo_height) / img_height
        canvas.drawImage(path, 42, 760, height=logo_height, width=new_width)

        canvas.setFont('Helvetica', 8)
        canvas.setFillColorCMYK(0, 0, 0, 60)
        #Add Company Information in under the logo if dellarobbia
        if self.company.lower() == 'dellarobbia thailand':
            canvas.drawString(42, 760,
                            "78/448 Moo.6 Lam Lukka Rd. Bueng Kham Phroi, Lam Lukka")
            canvas.drawString(42, 750, "Pathum Thani, Thailand, 12150")
            canvas.drawString(42, 740, "+66 2 508 8681")
        else:
            canvas.drawString(42, 760,
                            "78/448 Moo.6 Lam Lukka Rd. Bueng Kham Phroi, Lam Lukka")
            canvas.drawString(42, 750, "Pathum Thani, Thailand, 12150")
            canvas.drawString(42, 740, "+66 2 508 8681")
        #canvas.drawString(42, 730, "www.dellarobbiathailand.com")

        # Create The document type and document number
        canvas.setFont("Helvetica", 16)
        canvas.drawRightString(550, 800, 'Purchase Order')
        canvas.setFont("Helvetica", 12)
        canvas.drawRightString(550, 780, 'PO# : {0}'.format(self.id))

        # Create a barcode from the id
        canvas.setFillColorCMYK(0, 0, 0, 1)
        code = 'PO-{0}'.format(self.id)
        barcode = code128.Code128(code, barHeight=20, barWidth=0.5 * mm)
        x_position = 570 - barcode.width
        # drawOn puts the barcode on the canvas at the specified coordinates
        barcode.drawOn(canvas, x_position, 750)
        
        # Create the revision
        if self.revision:
            if self.revision_date:
                msg = u"Revision: {0}, # {1}"
                revision_str = msg.format(self.revision_date.strftime('%B %d, %Y'),
                                          self.revision)
            else:
                msg = u'Revision: # {0}'
                revision_str = msg.format(self.revision)
                
            canvas.setFillColorCMYK(0, 0, 0, 1)
            canvas.setFont("Helvetica", 12)
            canvas.drawRightString(550, 730, revision_str)
예제 #57
0
canvas = canvas.Canvas("pdfs/extra-010.pdf")


#
# Alinhamento do texto
#

# A função drawString() desenha o texto com o ponto inicial a esquerda
canvas.drawString(100, 700, "primeiro")

# A função drawCentredString() desenha o texto com o ponto inicial no xentro
canvas.drawCentredString(100, 650, "segundo")

# A função drawRightString() desenha o texto com o ponto inicial no xentro
canvas.drawRightString(100, 600, "terceiro")



#
# Alterando a fonte do texto
# 
# O tipo e o tamanho da fonte pode ser alterado com a função setFont().
# Abaixo temos uma lista das fontes disponíveis:
# 
#     Courier, Courier-Bold, Courier-Oblique e Courier-BoldOblique;
#     Helvetica, Helvetica-Bold, Helvetica-Oblique e Helvetica-BoldOblique;
#     Times-Roman, Times-Bold, Times-Italic e Times-BoldItalic;
#     Symbol e ZapfDingbats.

canvas.setFont('Helvetica', 12)
예제 #58
0
파일: pdf.py 프로젝트: wichmann/bbss
def create_later_pages(canvas, doc):
    canvas.saveState()
    canvas.setFont('Helvetica', 10)
    canvas.drawString(BORDER_HORIZONTAL, BORDER_VERTICAL, TITLE)
    canvas.drawRightString(PAGE_WIDTH-BORDER_HORIZONTAL, BORDER_VERTICAL, "Seite {}".format(doc.page))
    canvas.restoreState()