Página 1 de 1

Imprimir con Perl

NotaPublicado: 2009-01-28 10:42 @487
por Rene Serrano
Buen día, compañeros, les comento mi duda.

Tengo que imprimir en un formato ya establecido que mide unos 20x20 cm un par de líneas como especie de encabezado que es un código que se encuentra en un BD de MySQL; el asunto es que tengo imprimir por ejemplo 25 de estos formatos por cada código, entonces no encuentro cómo hacerlo con Perl.

Vi un módulo de ReportWriter pero no sé si es lo que necesito. Tengo pensado algo así:

Código: Seleccionar todo
llamar impresora
     for(x to 25){
       print $codigo
}


Algo así.
Saludos.

NotaPublicado: 2009-01-28 11:12 @509
por explorer
A ver... yo creo que lo he entendido así:
Código: Seleccionar todo
* Para todos los códigos de la BD:
    * Imprimir 25 copias. Por cada copia:
      * Posicionar el cursor de impresión
      * Imprimir el texto
      * Pasar la página (sacar el carácter de avance de página)
  * Repetir para todas las copias
* Repetir para todos los códigos

Entonces, ¿cuál es el problema?

NotaPublicado: 2009-01-28 11:36 @525
por Rene Serrano
Esto cierto lo que decís.
Pero que no encuentro el módulo con cuál hacerlo. Por ejemplo, cómo llamo el impresor, cómo le digo en qué posición tiene que imprimir, saltar a la siguiente página. He buscado algo en CPAN, pero no doy con nada. Si alguien o tu explorer ya te topaste con algo igual me ayudaría mucho.

Saludos.

NotaPublicado: 2009-01-28 12:57 @581
por explorer
Es que no se trata de módulos. Primero tienes que resolver las siguientes cuestiones (las primeras que se me ocurren):

* ¿Voy a sacar texto o quiero hacer una salida con texto en forma de gráfico, como si fuera un PDF o con tipos de letras TrueType? No es lo mismo sacar caracteres con un humilde print() por el puerto de imnpresora que a tener que usar un monstruo como Win32::Printer

* ¿Tengo el manual de la impresora? Esto es importante, para saber si tiene un código distinto para indicar el "avance de página", que normalmente es el carácter "\f"

* ¿En qué sistema operativo vas a trabajar? Mientras que en CPAN existe el módulo Printer, hay otros módulos específicos para imprimir.

NotaPublicado: 2009-01-28 14:48 @658
por explorer
Aquí tienes un ejemplo de uso con el comando lp del Unix:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
open my $printer, "|-", "/usr/bin/lpr"
or die "could not open command lpr: $!";

print $printer "do it\n";

close $printer;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

NotaPublicado: 2009-01-28 18:52 @828
por Rene Serrano
Gracias, explorer, te comento que estoy usando el sistema operativo WinXP :s, luego sería una salida directa al impresor, porque pensé hacerlo salida HTML pero no quiero mostrar 25 veces el mismo ya que en HTML usando CSS se puede controlar salto de página, con respecto a la impresora es una epson fx2190 de alimentador de tracción por lo cual tendré que hacer las cosas por lo que vi con Win32::Printer es lo que se asemeja más con lo que quiero hacer, si me dan otra idea pues bienvenida.

Saludos.

NotaPublicado: 2009-01-28 19:49 @867
por explorer
Si consistiese en una simple salida de texto crudo hacia la impresora, te valdría con cualquiera de los métodos comentados en esta entrada de PerlMonks.

NotaPublicado: 2009-01-28 19:54 @871
por Rene Serrano
Gracias, explorer, te lo agradezco. Probaré con estos dos métodos:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#  1 Impresora Local
open(LPT, ">LPT1");
print LPT "$data\f";
close(LPT);

# Metodo 4 Impresora de red
open(LPT, ">\\printserver\printername");
print LPT "$data\f";
close(LPT);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4