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()
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)