Básicamente lo que hace el sistema es generar un archivo pdf con unos carné de lectores, el cual debe incluir un código de barras por cada uno.
Cuando inserto el texto, y dibujo las líneas delimitadoras, e incluso agrego el logotipo de la biblioteca, el archivo pdf se genera y abre sin inconvenientes.
Pero cuando agrego el código de barras, al intentar abrir el archivo pdf, el Acrobat Reader me muestra: "Error al abrir el documento. El archivo está dañado y no puede repararse".
Ya busqué cientos de formas para depurarlo, inclusive cambiando a la librería "PDF::API2", pero no encuentro la forma de lograr generar un pdf válido con el código de barras.
Les paso el trozo de código, a ver si me puede ayudar a depurar el código, o se les ocurre algo para poder identificar el error.
Using perl Syntax Highlighting
- my $pdf = new PDF::Report(PageSize => "A4", PageOrientation => "Portrait");
- $pdf->newpage( 0 );
- $pdf->openpage( 0 );
- $pdf->setSize( 8 );
- $pdf->addRawText("Hola Mundo",300, 300);
- my $code = '31570918';
- my $zone = length($code) - 5;
- $pdf->drawBarcode(300, 500, 1, 1, '3of9', '31570918', '012345', 9+$zone, 9+$zone, 3+$zone, 0, '-', 0.5, 9, '');
- print "Content-Disposition: attachment; filename=\"carnet.pdf\"\n\n";
- print "Content-type: application/pdf\n\n";
- print $pdf->Finish();
Coloreado en 0.005 segundos, usando GeSHi 1.0.8.4
La especificación de la librería y del método están en: http://search.cpan.org/~teejay/PDF-Report-1.36/lib/PDF/Report.pm#drawBarcode