Relatório em PDF em Python/Django

2,385 views
Skip to first unread message

Adauto Serpa

unread,
Jan 3, 2012, 7:54:16 PM1/3/12
to Django Brasil
Boa Noite Pessoal,

Estou desenvolvendo um sistema que precisa gerar um relatório que imprima sobre um modelo de documento, ou seja tipo
uma nota fiscal, mas é um certificado. Esse modelo vem pronto da gráfica e "apenas" quero imprimir os dados do aluno.

Como não tenho experiência e esse vai ser o meu segundo projeto rsrs.. o que me indicam para gerar esse tipo de relatório,
pois vou ter que especificar as posições para a impressão dos dados.

desde já agradeço,

--
Adauto Serpa
Analista de Infra-estrutura

Manuel Gonçalves da Silva Neto

unread,
Jan 3, 2012, 8:48:56 PM1/3/12
to django-brasil

Minha produção amentou 100% depois que encontrei o geraldo-reports feito pelo Marinho (mesmo autor do livro django no planeta terra).


Atenciosamente:
                 Manuel  Gonçalves

      



Date: Tue, 3 Jan 2012 22:54:16 -0200
Subject: Relatório em PDF em Python/Django
From: adaut...@gmail.com
To: django...@googlegroups.com
--
Django Brasil em Google Groups <http://groups.google.com.br/group/django-brasil>
Associe-se à Python Brasil e suporte nossa comunidade! <http://associacao.python.org.br/>

Miltinho

unread,
Jan 4, 2012, 5:31:32 AM1/4/12
to Django Brasil
Adauto, bom dia

Dê uma olhada no Geraldo

http://www.geraldoreports.org/

Dentro da minha limitação de tempo posso te ajudar.

Adauto Serpa

unread,
Jan 4, 2012, 9:45:46 AM1/4/12
to django...@googlegroups.com
Valeu Pessoal,

Vejo que é preferência em utilizar Geraldo Report. Essa era minha principal dúvida, escolher uma boa aplicação
para geração de relatórios.

Bom vou utiliza-lo como gerador padrão de relatórios em minhas aplicações.
Eu instalei e estou tentando aprender um pouco, quando eu empacar rsrs "posto" minha dúvida.

abs,

Adauto Serpa

Fernando Espíndola

unread,
Jan 4, 2012, 10:52:28 AM1/4/12
to django...@googlegroups.com
Pessoal, eu usei um tempo atrás o Pisa um gerador de html2pdf, um gerador de relatórios em PDF a partir de arquivos html. Eu achei bem fácil, mas tinha umas coisas que eu não consegui ou era difícil de fazer com ele.

Qual a opinião de vocês relacionado a esse gerador ?

Grato.

2012/1/4 Adauto Serpa <adaut...@gmail.com>



--
-- Fernando
(051) 9283-2466

Adauto Serpa

unread,
Jan 4, 2012, 2:13:32 PM1/4/12
to django...@googlegroups.com
Pessoal,

Estou gostando do geraldo reports, pois posso especificar onde certa informação vai ser colocada na página.
Isso era fundamental para o projeto.

abs,

Adauto Serpa

Fernando

unread,
Jan 4, 2012, 5:14:39 PM1/4/12
to django...@googlegroups.com
2012/1/4 Fernando Espíndola <fer...@gmail.com>:

> Pessoal, eu usei um tempo atrás o Pisa um gerador de html2pdf, um gerador de
> relatórios em PDF a partir de arquivos html. Eu achei bem fácil, mas tinha
> umas coisas que eu não consegui ou era difícil de fazer com ele.
>
> Qual a opinião de vocês relacionado a esse gerador ?
>
> Grato.
>

Ele mudou de nome (ou é um fork, não sei bem):
http://www.xhtml2pdf.com/

Tenho testado ele, de cara me pareceu bastante flexível.

[]s


--
http://about.me/fernandogrd

Mário Neto

unread,
Jan 5, 2012, 6:33:18 AM1/5/12
to django...@googlegroups.com
Mas pq a necessidade de um relatório ser em pdf?
Se for pra guardar o pdf, o prórpio sistema não pode armazenar os dados?
Se for pra imprimir, não é só fzr um css pra impressão, gerar o relatório em html e imprimir pelo browser mesmo?

Me viro muito bem com html msm e o django já da um ótimo suporte nativo a ele, já q eh um framework pra web, hehe
vlw!

--
Django Brasil em Google Groups <http://groups.google.com.br/group/django-brasil>
Associe-se à Python Brasil e suporte nossa comunidade! <http://associacao.python.org.br/>



--
Att. Mário Araújo Chaves Neto
Programmer, Designer and U.I. Engineer

MBA in Design Digital - 2008 - FIC
Analysis and Systems Development - 2011 - Estácio
Design and Implementation of Internet Environments - 2003 - FIC

Fernando Espíndola

unread,
Jan 5, 2012, 8:43:30 AM1/5/12
to django...@googlegroups.com
Olá Mário, 

Depende muito o caso de uso, para mim por exemplo, eu preciso mandar um relatório por e-mail para algumas pessoas. O requisito é mandar o relatório formatado dentro de um PDF.

Uma dúvida, esses css de impressão suportas bandas? Como cabeçalho, rodapé, páginação? Nunca vi relatórios bem formatados de multiplas folhas rodando só usando html.

Tu teria alguns exemplos na web? Ou informações adicionais?

Valeu.

2012/1/5 Mário Neto <macnd...@gmail.com>



--
-- Fernando
(051) 9283-2466

Mário Neto

unread,
Jan 5, 2012, 9:05:19 AM1/5/12
to django...@googlegroups.com
Cara, html é uma linguagem de marcação muito genérica, visualmente suporta praticamente tudo, tu pode criar estruturas da forma que necessitar, pode ver o código do Initializr:
Nele tem cabeçalho, corpo, rodapé, tudo formatado semanticamente.
No CSS dele existe um um estilo pra impressão, pra criar esse estilo, basta criar uma media query print, busque por:
@media print
Ps: Dê um Ctrl+P no site, pra ver como o estilo de impressão é bem diferente, veja também no seu celular que o estilo também muda.
Para quebra de página você pode utilizar uma class page-break que o estilo dela fará a quebra de página no momento em que vc quiser:
Outra dica é que além de aplicar as técnicas acima, vc pode utilizar um plugin do jQuery chamado printElement pra selecionar apenas a parte desejada do documento html para impressão, isso foi muito útil pra mim, pois existem muitos relatórios em que vc tem que gerar apenas uma parte de um relatório já existente.
Bom, as possibilidades são praticamente infinitas com html + css, e o melhor que você reaproveita o código do seu html fazendo bom uso do DRY. =)

marcos thomaz

unread,
Jan 5, 2012, 9:58:25 AM1/5/12
to django...@googlegroups.com
Mário, acho que o que o Fernando quer dizer com cabeçalho e tal, seria no sentido de um relatório com múltiplas páginas. Tipo, no topo de cada página aparecer o nome do relatório (por ex. Relatório Analítico de ....), o título das colunas ( nome, código, quantidade, etc). Fiz isso no HTML, usando: forloop.first, divideby, e outros, mas deu muito trabalho. Além de ter problemas como por exemplo, um dos usuários aumentou o tamanho das fontes, isso faz com que a quebra de página (que era a cada 30 linhas por exemplo) desse problema. 
 
[]'s

Marcos Thomaz

De: Mário Neto <macnd...@gmail.com>
Para: django...@googlegroups.com
Enviadas: Quinta-feira, 5 de Janeiro de 2012 10:05
Assunto: Re: Relatório em PDF em Python/Django

Mário Neto

unread,
Jan 5, 2012, 11:32:38 AM1/5/12
to django...@googlegroups.com
Pois eh, não sou nenhum pouco contra gerar PDF's para fazer relatórios, muito pelo contrário, a um tempo eu dei uma olhada superficial no Geraldo Reports e gostei muito também, me parece um dos melhores projetos mesmo, no entanto, tem pessoas que já tem uma espécie de cultura de que relatório tem que ser em PDF quando muitas vezes os mesmos podem ser resolvidos facilmente com html, por exemplo se o cara tiver uma hospedagem como UOLHost da vida, o cara não pode instalar p... nenhuma, aí fica frustrado por não poder gerar um relatório em PDF, pra mim em muitas situações o html foi uma opção mais do que adequada, mas depende muito do cliente também, não vou falar muito sobre o usuário, esse assunto pode render muito... hehe, acredito que isso vai muito também da desenvoltura do programador com a tecnologia a ser usada, se o cara detona por exemplo no Geraldo Reports, ele pode fazer um relatório muito mais rápido e elegante do que se fosse fazer em html, como vc (Marcos Thomas) citou a complexidade que teve pra fazer um determinado relatório em html, talvez se tivesse partido pro PDF poderia ser bem mais rápido e prático. Voltando ao problema do relatório, já que terá que replicar no cabeçalho e rodapé os mesmos dados vc pode trazer os dados pré-definidos nas views como vc msm disse utilizando os template filters do django, eu não vejo muito problema nisso. O texto acima foi apenas uma opinião e sugestão própria. Gosto muito de projetos como o Geraldo Reports é o tipo projeto que o Python estava precisando mesmo!

marcos thomaz

unread,
Jan 5, 2012, 11:53:54 AM1/5/12
to django...@googlegroups.com
Tranquilo... eu havia entendido sua colocação. Realmente, muitas vezes um relatório HTML acaba sendo mais rápido e tal. Se não depender de um formato muito específico, sem posicionamento muito rígido, também acho uma opção muitíssimo boa. E com relação a hospedagem, acho que o problema é com a maioria das hospedagens compartilhadas (tem como resolver, mas dá um certo trabalho).Mas é isso aí... opções existem, e é sempre uma boa mostrá-las.
 
[]'s

Marcos Thomaz

Enviadas: Quinta-feira, 5 de Janeiro de 2012 12:32

daniel gatis

unread,
Jan 5, 2012, 3:03:12 PM1/5/12
to django...@googlegroups.com
Cara sempre fiz relatórios com o jasper/ireport. Ele é fácil para
fazer o layout e fácil de integrar com seu framework web
python/ruby/java/etc.
No caso do django da uma olhada aqui:
https://code.djangoproject.com/wiki/PDFWithJasperReports

2012/1/5 marcos thomaz <marcos...@yahoo.com.br>:

Adauto Serpa

unread,
Jan 5, 2012, 5:20:03 PM1/5/12
to django...@googlegroups.com
Pessoal,

Como eu comentei no meu email anterior, o que gostei foi a questão das coordenadas de posicionamento que
foi imprescindível para o meu projeto, acho que em html não teria essa facilidade.
Agora acho interessante relatórios em html, ainda não tentei e nem procurei saber, mas seria interessante
uma apresentação de relatórios em html estilo o modo de visualização de documentos do google docs.

abs,

Adauto Serpa

Mário Neto

unread,
Jan 5, 2012, 9:56:00 PM1/5/12
to django...@googlegroups.com
Isso é só uma questão de saber CSS =)
Design and Project of Internet Environments - 2003 - FIC

Fernando

unread,
Jan 23, 2012, 8:36:51 AM1/23/12
to django...@googlegroups.com
2012/1/4 Fernando <ferna...@gmail.com>:
Só para complementar, nos meus testes, a performance do xhtml2pdf para
grandes tabelas foi péssima. Cerca de 2 horas para uma tabela de
10.000 linhas.

Para esse caso específico estou vendo de fazer com html + css mesmo.

[]s

--
http://about.me/fernandogrd

Fernando

unread,
Jan 23, 2012, 8:38:12 AM1/23/12
to django...@googlegroups.com
2012/1/23 Fernando <ferna...@gmail.com>:
Isso num servidor não muito potente, de qualquer forma 2 horas é d+
até pro meu notebook fraquinho.


--
http://about.me/fernandogrd

Reply all
Reply to author
Forward
0 new messages