perl_frase

Generar código QR desde postgreSQL con Perl

qr-leninmhsComo practica para probar y conocer como generar códigos QR en Perl, realizaremos el siguiente ejercicio: conectarnos a una base de datos, consultar el identificador único de cada producto en una tabla de nuestra base de datos postgres, generar el código QR de cada uno de los productos. Cada QR direccionara a un url compuesto por una pagina web + el identificador, con lo cual suponemos que en ese url hubiera la información con mas detalle del producto. La practica sera realizada en Debian GNU/Linux

Usaremos el modulo de CPAN Imager::QRCode para generar nuestros QR. Mas información: http://search.cpan.org/~kurihara/Imager-QRCode/lib/Imager/QRCode.pm

Para conectarnos y consultar la base de datos, usaremos la extensión para postgres de Class::DBI. Mas información: http://search.cpan.org/~rudy/DBD-Pg/Pg.pm

Código QR desde postgreSQL con Perl

Ambos módulos los tendremos disponibles en nuestro Debian con: #aptitude install libimager-qrcode-perl libclass-dbi-pg-perl

Crearemos un archivo de texto con extensión .pl colocaremos y adaptaremos lo siguiente:

Código Fuente

[sourcecode language=»perl»]
#!/usr/bin/perl -w
use Imager::QRCode;
use DBI;

my $bd = DBI->connect("DBI:Pg:dbname=bd_ventas;host=192.168.0.1", "usuario_bd", "clave_bd", {‘RaiseError’ => 1});
my (@consulta, $sth);

$sth=$bd->prepare("SELECT id_producto FROM productos");
$sth->execute();

my $qrcode = Imager::QRCode->new(
size          => 8,
margin        => 1,
version       => 4,
level         => ‘L’,
casesensitive => 1,
lightcolor    => Imager::Color->new(255, 255, 255),
darkcolor     => Imager::Color->new(0, 0, 0),
);

while(@consulta = $sth->fetchrow_array() ){
$img = $qrcode->plot("http://paginaweb.com.ve/$consulta[0]", \%params);
$img->write(file => "$consulta[0].gif");
}#fin while
[/sourcecode]

Explicación del código fuente

Nota: La numeración presentada a continuación corresponde a las lineas de código presentadas anteriormente.

2 y 3: Le indicamos al programa que usaremos los módulos que contienen funcionalidades que necesitaremos en este script. Como las de interactuar con PostgreSQL y generar códigos QR.

5 y 6: Indicamos la cadena de conexión a PostgreSQL y inicializamos variables que usaremos.

8 y 9: Preparamos la consulta que necesitamos y la ejecutamos.

11: Creamos una instancia del objeto que generara nuestros código QR, los parámetros que aceptan serán las propiedades de nuestros QR.

12: Define el tamaño de la imagen del QR, un valor de 8 la genera de 280x280px y  4 como valor la generara de 140x140px).

13: Definirá el ancho del margen entre los bordes de la imagen y el código QR.

14: Define la versión del QR a generar. Se refiere a la capacidad de la información a almacenar. Mas información: http://www.qrcode.com/en/about/version.html

15: Definirá nivel de recuperar la información del QR si este se ensucia o daña. Los valores posibles son L M Q H .Mas información: http://www.qrcode.com/en/about/error_correction.html

16: Usar si los valores que usaras deben ser diferenciados entre mayúsculas y minúsculas

17 y 18: Indica el color claro y oscuro del QR, con lo cual si queremos nuestro QR amarillo y negro podemos usar (234,234,34) con (0,0,0).

21: Recorremos el resultado de la consulta, en cada iteración crearemos un QR con los datos que tenemos disponible en cada vuelta

22 y 23: Indicamos el texto o el URL que retornara el QR al ser leído(en nuestro caso el url) y generamos la imagen del QR (usamos el identificador que consultamos como nombre de archivo con extensión .gif)

perl_frase
perl_frase

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *