Geração de pdf no groovy
25/11/2015 12:37
0
Bom dia,

Alguém tem conhecimento sobre plugins de geração de pdf no Grails? Vejo alguns na internet, mas com pouca documentação, ou não funcionam.
Obrigado.

Manoel Jr.
Tags: Grails, pdf, plugins


2
Olá Manoel,
  Você quer gerar um relatório em PDF?
  Se for sugiro usar o jasper.
25/11/2015 14:27


0
Obrigado, Dyego. Vou testar aqui.
25/11/2015 14:40


2
Uma alternativa legal pra você experimentar.

Ao invés de usar plug-ins e bibliotecas para Java, use media query de impressão no seu CSS. Todo browser hoje tem a opção de imprimir direto pra PDF. Você mata dois coelhos com um golpe: menos dependências pro seu projeto e algo mais fácil de manter. 

Outra alternativa: dá uma olhada no plug-in renderer. 


0
Uma alternativa boa tambem é o plugin para trabalhar com tabela do jquery chamado https://www.datatables.net/, ele tem uma extensions para exportar em alguma formatos como pdf, excel, cvs e outros, tem um exemplo aqui https://www.datatables.net/extensions/tabletools/ 
25/11/2015 16:09


1
Obrigado pelas respostas.
Obtive êxito utilizando o plugin Rendering (http://gpc.github.io/rendering/guide/index.html). Depois de muita pesquisa no google sobre como configurar, caçando as dependências, ficou desta forma:

No arquivo BuildConfig.groovy:

dependencies {
?/* outras dependências... */
?runtime 'org.springframework:spring-test:4.1.4.RELEASE'
}

plugins {
/* outras dependências... */
compile ":rendering:1.0.0"
}


No controller:

def toPDF() {

def features = Feature.findAll()
def totalFeaturesOK = Statistic.findAllByPercSuccessScenario(100D).size()

def pdf = new ByteArrayOutputStream().withStream { outputStream ->
pdfRenderingService.render(
[controller: 'status',
template: "pdf",
model: [features: features, totalFeaturesOK: totalFeaturesOK]],
outputStream 
).toByteArray()
}

render(file:pdf, contentType: 'application/pdf')
}


E crie uma view "_pdf.gsp" em views/<controller>

Atenciosamente,

Manoel Jr.
26/11/2015 10:51


1
Oi Manoel,

sobre o plugin Rendering, você deve ficar muito atento a uma limitação dele: é baseado em um componente chamado Flying Saucer.
Flying Saucer pode ser usado como um browser "headless", ou seja, ele renderiza em memória as páginas, e é usado para gerar o PDF para você. No entanto, só gera PDF se as seguintes condições forem satisfeitas:
* O HTML deve ser XHTML, ou seja, deve ser inteiramente válido. Caracteres fora do UTF-8 (ou o encoding que você definir) podem te dar erro, assim como tags não fechadas
* Ele não tem o CSS completo: apenas o essencial. Sendo assim, esqueça-se de recursos avançados do CSS3
Normalmente corrigir erros nele é um pouco chato, pois envolve você ver o HTML gerado e, com base nisto, encontrar os pontos em que podem ter sido gerados trechos mal formatados.
Tirando isto, é uma solução muito interessante. :)


0
Valeu, Kiko.

Até o momento, o relatório é simples, com imagem e informações tabulares. Mas está atendendo.
Obrigado.
27/11/2015 16:49


0
Boa noite a todos. Alguém poderia me ajudar, segui os exemplos do Manoel aí de cima, mas parece que o plugin não foi instalado, porque mesmo sem dar erro na chamada
não consegui entender essa parte : pdfRenderingService.render. Esse serviço é do plugin ? Porque ele não encontra. Desculpe se não me fiz entender, mas que não consigo fazer o funcionar o rendering no controller. Poderiam me ajudar ? Quero gerar um PDF simples da uma view.


0
Tentando Melhor a pergunta:

coloquei no build config  : compile "org.grails.plugins:rendering:1.0.0". Não apresenta nenhum erro, porém esse serviço pdfRenderingService parece não existir no meu projeto. Ele dá erro de que não exsite. Falta mais alguma coisa ? alguma configuração ? instalação ? Ja pesquisei muito e não consigo encontrar onde estou errando. 

Abraços a todos. 
 



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto