예제 #1
0
def dibujar_logo(canvas, doc, ruta_logo, lineas_datos_empresa, datos_fiscales, 
                 logo_marcado = None, idioma = "es"):
    """
    Dibuja el logotipo de la empresa en la página de «canvas».
    También dibuja el pie porque se hace con onLaterPages, que no es llamada 
    en la primera página. Así que aquí hay que hacer las dos cosas.
    """
    try:
        from framework.pclases import DatosDeLaEmpresa
        datos_empresa = DatosDeLaEmpresa.select()[0]
        dibujar_logo_prns(canvas, 1*cm, PAGE_HEIGHT, datos_empresa)
        dibujar_domicilio_fiscal_prns(canvas, 1*cm, PAGE_HEIGHT - 2.7*cm,
                                      datos_empresa)
        dibujar_domicilio_fabrica_prns(canvas, 1*cm, PAGE_HEIGHT - 3.5*cm,
                                       datos_empresa)
        dibujar_cif_prns(canvas, 1*cm, PAGE_HEIGHT - 4.2*cm, datos_empresa)
        if idioma == "en":
            strcarta = "Letter of commitment"
        else:
            strcarta = "Carta compromiso"
        dibujar_bvqi_prns(canvas, PAGE_WIDTH - 1*cm, PAGE_HEIGHT - 3*cm,
                          datos_empresa, strcarta)
        canvas.saveState()
        canvas.setStrokeColorRGB(*VERDE_GTX)
        canvas.line(0, PAGE_HEIGHT - 4.5*cm, PAGE_WIDTH, PAGE_HEIGHT - 4.5*cm)
        canvas.restoreState()
    except Exception, e:
        # OLD CODE IS OLD
        if ruta_logo:
            im = Image.open(ruta_logo)
            ancho, alto = im.size
            nuevo_alto = min(5 * cm, alto)
            ancho_proporcional = ancho * (nuevo_alto / alto)
            canvas.drawImage(ruta_logo, 
                             (PAGE_WIDTH - ancho_proporcional) / 2, 
                             PAGE_HEIGHT - 2 * cm - nuevo_alto, 
                             ancho_proporcional, 
                             nuevo_alto)
        if logo_marcado:
            im = Image.open(logo_marcado)
            ancho, alto = im.size
            nuevo_alto = min(2.5 * cm, alto)
            ancho_proporcional = ancho * (nuevo_alto / alto)
            canvas.drawImage(logo_marcado, 
                             PAGE_WIDTH - 6 * cm, 
                             PAGE_HEIGHT - 2 * cm - nuevo_alto, 
                             ancho_proporcional, 
                             nuevo_alto)
            canvas.saveState()
            canvas.setFont("Helvetica", 8)
            # OJO: HARCODED (como en todos los PDF que llevan marcado CE)
            texto_marcado = 'CE 1035-CPD-ES033858'  # Ojito: el de rollos, que es 
                # el que tenía puesto José Manuel Hurtado. Todas las críticas al 
                # formato, a él. He copiado tal cual su carta de compromiso. 
            canvas.drawCentredString(PAGE_WIDTH - 6*cm + (ancho_proporcional / 2), 
                                     PAGE_HEIGHT - 2*cm - nuevo_alto - 8, 
                                     escribe(texto_marcado))
            canvas.restoreState()
예제 #2
0
def dibujar_logo(canvas, doc, ruta_logo, idioma = "es"):
    """
    Dibuja el logotipo de la empresa en la página de «canvas».
    UPDATE: Dibuja el logo y el resto de información de la cabecera nueva made
    in Parnaso.
    """
    datos_de_la_empresa = pclases.DatosDeLaEmpresa.select()[0]
    c = canvas
    width, height = PAGE_WIDTH, PAGE_HEIGHT
    lm = 0.7*cm
    rm = width - 1.2*cm
    if datos_de_la_empresa.logo:
        dibujar_logo_prns(c, lm, height, datos_de_la_empresa)
    if datos_de_la_empresa.bvqi:
        if idioma == "en":
            i10n_oferta = "Offer"
        else:
            i10n_oferta = "Oferta"
        dibujar_bvqi_prns(c, rm, height - 3.5*cm, datos_de_la_empresa,
                i10n_oferta)
    dibujar_domicilio_fiscal_prns(c, lm, height - 3.0*cm, datos_de_la_empresa)
    dibujar_domicilio_fabrica_prns(c, lm, height - 4.0*cm, datos_de_la_empresa)
    dibujar_cif_prns(c, lm, height - 5.0*cm, datos_de_la_empresa)
    dibujar_linea_prns(c, height - 5.5*cm)