Trabalhando com Relatórios, Gráficos e Imagens

Dando continuidade à parte I do artigo, após montada toda a estrutura de pastas o próximo passo é definir um padrão para os relatórios, ou seja, fazer o layout de como os relatórios será apresentado. Após esta definição deverá ser criado todos os arquivos com extensão pdf e jpg que serão inseridos em todos os relatórios em tempo de execução.

Será apresentado a seguir um modelo padrão, que será utilizado no decorrer do artigo, e para tanto serão definidos a logomarca da empresa bem como todos os dados cadastrais da mesma, Figura 01. Esta imagem devera ser salva no formato JPG, que é o formato padrão que será utilizado pelo programa gerador do cabeçalho padrão dos relatórios. Todas estas imagens criadas deverão ser salvas numa pasta chamada padrao.

Logo Marca e dados cadastrais
Figura 1. Logo Marca e dados cadastrais.

Para isso, você devera utilizar algum utilitário de para fazer desenho ou trabalhar com imagem, neste artigo será utilizado o Paint, Figura 02, do Windows.

Acessar o Paint.
Figura 2. Acessar o Paint.

Após definido o cabeçalho, o próximo passo será criar um arquivo que conterá o rodapé do relatório, Figura 3, e que ficará ao final do relatório.

Rodape
Figura 3. Rodape.jpg.

Feito isso todos os arquivos com as imagens necessárias e sugeridos para se criar um relatório estarão prontos, e poderão ser reutilizados sempre que necessário. Estes arquivos fazendo uma analogia são objetos.

Editando e executando os programas

Agora chegou à hora de colocar a mão na massa, vamos começar a programar, para tanto utilize o editor de textpad para fazer estes programas, os mesmos deverão ser salvos na pasta padrão, a mesma pasta que contem as imagens salvas anteriormente.

O dois primeiro programa que faremos irá fazer uso das imagens criadas anteriormente e seguem abaixo:

Programa para criar subcabecalho

Programa 1 – subheader.pl

            #!/perl/bin/perl

            #Autor: Hailton David Lemos
            
            use PDF::Reuse;
            
            use Image::Info qw(image_info dim);
            
            use strict;
            
            prFile('subheader.pdf');
            
            my $file = 'cabecalho.jpg';
            
            my $info = image_info($file);
            
            my ($width, $height) = dim($info);
            
            my $intName = prJpeg("$file", $width, $height);
            
            $width = $width * 0.55;
            
            $height = $height * 0.45;
            
            my $yImage = 760;
            
            my $xImage = 15;
            
            my $string = "q\n";
            
            $string .= "$width 0 0 $height $xImage $yImage cm\n";
            
            $string .= "/$intName Do\n";
            
            $string .= "Q\n";
            
            prAdd($string);
            
            prEnd();
        

Programa para criar subcabeçalho

Programa 2 –header.pl

            #! /perl/bin/perl

            #Autor: Hailton David Lemos
            
            use PDF::Reuse;
            
            use strict;
            
            prFile('header.pdf');
            
            prForm("subheader.pdf");
            
            prFontSize(9);
            
            my $string = "10 740 582 15 re\n";
            
            $string .= "0.95 g \n";
            
            $string .= "b\n";
            
            prAdd($string);
            
            prEnd();
        

Estes programas, serão os responsáveis pela criação do cabeçalho dos relatórios.

Uma vez feita esta operação vá ao prompt de comando, e digite: cd\padrao, logo após iremos executar nossos programas escritos em Perl, para tanto basta agora digitar perl subheader.pl e depois perl header.pl, nesta ordem, feito isso teremos dois arquivos pdf criados na pasta, o header.pdf e o subheader.pdf.

O relatório deverá ser envolto por uma moldura, Programa 1, e também devera ter uma marca d'água, Programa 2, o que ira garantir a autenticidade do mesmo, e para tanto agora iremos fazer nossos primeiros programa escrito em Perl, não fiquem ansiosos já, já estaremos trabalhando com Java.

Programa para criar retângulo que irá circundar pagina pdf.

Programa 3 – mascara.pl

            #! /perl/bin/perl

            #Autor: Hailton David Lemos
            
            use PDF::Reuse;
            
            use PDF::Reuse::Barcode;
            
            use strict;
            
            prFile('mascara.pdf');
            
            my $string = "10 70 582 780 re\n";
            
            $string .= "1 g \n";
            
            $string .= "b\n";
            
            prAdd($string);
            
            prEnd();
        

Programa para criar marca d'água.

Programa 4 – marcaDagua.pl

            #!/perl/bin/perl

            #Autor: Hailton David Lemos
            
            use PDF::Reuse;
            
            use PDF::Reuse::Barcode;
            
            use strict;
            
            prFile('watermark.pdf');
            
            prAdd('0.95 g');
            
            prFontSize(100);
            
            prText(70, 210, "PORTAL JAVA", 'left', 45);
            
            my $string = "10 720 582 20 re\n";
            
            $string .= "0.95 g \n";
            
            $string .= "b\n";
            
            prAdd($string);
            
            prEnd();
        

Uma vez feita esta operação vá ao prompt de comando novamente, e digite: cd\padrao, logo após iremos executar nossos programas escritos em Perl, para tanto basta agora digitar perl mascara.pl e depois perl marcaDagua.pl, feito isso teremos dois arquivos pdf criados na pasta, o mascara.pdf e o watermark.pdf.

Feitos todos os passos corretamente, teremos já a base para iniciarmos a criação de relatórios, sua pasta padrão devera estar como a Figura 4.

Visualizando o filegroup primário do database dbTeste
Figura 4. Pasta padrão.

Conclusão

No próximo artigo daremos continuidade ao nosso framework, com a criação de outros modelos sem a utilização de imagens, como foi feito até agora.

Nesta primeira etapa estamos utilizando apenas a execução do Perl através da linha de comando, mas assim que aprofundarmos mais no assunto iremos começar a utilizar o Java, aguardem.