Lo malo de estar más sólo que la una es que no hay tiempo para explorar en profundidad nada de nada.
Dado que es el único listado impreso que depende de la posición exacta sobre el papel, y que no encuentro el motivo de tanta disparidad en los desempeños de las impresoras, voy a hacer una excepción y a crear un filtro de impresión para él en exclusiva.
Dicho filtro va a ser un programa Perl que desplace el tercer recibo una línea hacia abajo, insertando un salto de línea antes del recibo y quitando una del final para que mantenga la longitud de la página física. Para entendernos todos: es una ñapa.
El programita es más o menos éste:
#!/usr/bin/perl use strict; use warnings; my $VERSION = 0.2; my $lineas_x_recibo = 24; my $insert_line_on = ($lineas_x_recibo * 2) + 1; my $delete_line = ($lineas_x_recibo * 3); my $lines_counter = 0; # Bucle de lectura de líneas while (my $line = <STDIN>) { # Contabilizamos $lines_counter ++; # Si alcanzamos el punto de inserción de línea if ($lines_counter == $insert_line_on) { } # Si no hemos llegado al punto de supresión enviamos copia de lo # recibido if ($lines_counter < $delete_line) { } # Si estamos en el lugar donde suprimir la última línea else { $lines_counter = 0; } } exit 0;
La puesta en marcha es sencilla porque el servidor donde lo hará es un veterano y sigue empleando lprng como sistema de impresión. Para instalar un filtro de impresión sólo es necesario modificar la entrada correspondiente en la configuración, que en este caso es el viejo y eficiente archivo
/etc/printcap
:
recibos:tc=.common:lp=hp2055@servidor.int :filter=/etc/magicfilter/recibos