예제 #1
0
    def _real_init(self):
        self.ultimo_estado_tarjeta = None
        self.printer = obtener_impresora()

        def _tarjeta_ingresada(callback):
            try:
                ingresada = self.printer.tarjeta_ingresada()
                if not self._conn:
                    self.connection(True)
                    self._conn = True
                if ingresada is None:
                    ingresada = False
                if ingresada != self.ultimo_estado_tarjeta:
                    self.ultimo_estado_tarjeta = ingresada
                    callback(self.full_paper_status())
            # si falla viendo si hay papel o no asumimos que la impresora esta
            # desconectada
            except Exception, e:
                if self._conn:
                    self._conn = False
                    self.connection(False)
            return True
예제 #2
0
    def _real_init(self):
        self.ultimo_estado_tarjeta = None
        self.printer = obtener_impresora()

        def _tarjeta_ingresada(callback):
            try:
                ingresada = self.printer.tarjeta_ingresada()
                if not self._conn:
                    self.connection(True)
                    self._conn = True
                if ingresada is None:
                    ingresada = False
                if ingresada != self.ultimo_estado_tarjeta:
                    self.ultimo_estado_tarjeta = ingresada
                    callback(self.full_paper_status())
            # si falla viendo si hay papel o no asumimos que la impresora esta
            # desconectada
            except Exception, e:
                if self._conn:
                    self._conn = False
                    self.connection(False)
            return True
예제 #3
0
def run(args):
    printer = obtener_impresora()
    if args.serialized is None or not args.serialized:
        logger.debug("Corriendo proceso de impresion o cache de impresion")
        logger.debug(args)
        image_file = open(args.filepath)
        data = image_file.read()
        size = [int(num) for num in args.size.split(",")]
        dpi = tuple([int(num) for num in args.dpi.split(",")])
        image = Image.fromstring(args.mode, size, data)
        printer.imprimir_image(image, dpi, args.transpose, args.compress,
                               args.only_buffer)
    else:
        extra_data = loads(b64decode(args.extra_data))
        if args.tipo_tag == "Seleccion":
            boleta = Seleccion.desde_string(args.tag)
            image = boleta.a_imagen()
            dpi = get_dpi_boletas()
        elif args.tipo_tag == "Apertura":
            boleta = Apertura.desde_tag(b64decode(args.tag))
            autoridades = boleta.autoridades
            image = boleta.a_imagen()
            dpi = DPI_VOTO_ALTA if IMPRESION_HD_APERTURA else DPI_VOTO_BAJA
        elif args.tipo_tag == "Recuento":
            boleta = Recuento.desde_tag(b64decode(args.tag))
            autoridades = extra_data.get('autoridades')
            if autoridades is not None:
                for autoridad in autoridades:
                    boleta.autoridades.append(Autoridad.desde_dict(autoridad))
            boleta.hora = extra_data['hora']
            image = boleta.a_imagen(extra_data['tipo_acta'])
            dpi = DPI_VOTO_ALTA if IMPRESION_HD_CIERRE else DPI_VOTO_BAJA
        elif args.tipo_tag == "Prueba":
            dpi = DPI_VOTO_ALTA
            image = ImagenPrueba(hd=True).render_image()

    printer.imprimir_image(image, dpi, args.transpose, args.compress,
                           args.only_buffer)