Pdf com o gráfico do Google chart Boa noite. Como gerar um Pdf com o gráfico do Google chart? ...
JL
Pdf com o gráfico do Google chart  
Boa noite.
Como gerar um Pdf com o gráfico do Google chart?

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (6)


NR

Basicamente você deve gerar uma imagem do gráfico e passar essa imagem para o pdf.
 
  1. <?php
  2. // comando javascript que gera uma string base64 representando a imagem
  3. chart.getImageURI();// passar o retorno dessa funcao para um hidden ou algo do tipo
  4. // usando fdpf para gerar o pdf com a imagem
  5. $pic = $string_js_base64;
  6. $pdf = new FPDF();
  7. $pdf->AddPage();
  8. $pdf->SetFont('Arial','B',16);
  9. $pdf->Cell(40,10,'Hello Image!');
  10. $pdf->Image($pic, 10, 30, $tamanho, $largura, 'png');
  11. $pdf->Output('tmp/doc.pdf');
  12. ?>
JL

Boa tarde.

Desde cedo estamos aqui batendo a cabeça, pois achamos essa solução que você nos indicou.

Recebemos esse erro: TypeError: chart.getImageURI is not a function

Sendo que o função se encontra na documentação do google line chart

Segue o trecho de códigos:

Onde eu seto o getImageURI():

//no arquivo google_line_chart.html var chart = new google.charts.Line(document.getElementById('chart_div')); chart.draw(data, options); $("input[name=img_grafico]").val(chart.getImageURI()); //arquivo form metodo construtor $img_grafico = new THidden('img_grafico'); //no arquivo form metodo onGenerate($param) $designer->Image($param['img_grafico'], 10, 30, $tamanho, $largura, 'png'); ;


No que pode estar errando?
Desde já agradeço sua atenção.

NR

 
  1. <?php
  2. var render_chart = function() {
  3. //google.charts.load('current', {'packages':['line']});
  4. google.charts.load('current', {'packages':['corechart']});
  5. google.charts.setOnLoadCallback(drawVisualization);
  6. function drawVisualization() {
  7. var data = google.visualization.arrayToDataTable( {$data} );
  8. var options = {
  9. title : '{$title}',
  10. vAxis: {title: '{$ytitle}'},
  11. hAxis: {title: '{$xtitle}'}//,
  12. //retirar opcao seriesType, nao esquecer de tirar a virgula da opcao anterior
  13. //seriesType: 'bars'
  14. };
  15. //var chart = new google.charts.Line(document.getElementById('chart_div'));
  16. var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
  17. chart.draw(data, options);
  18. }
  19. };
  20. ?>
JL

Sim, também logo mais fizemos essa adequação.

Erro no console: Chart has not finished drawing.

Pelo que lemos na documentação a função chart.getImageURI() não é aplicada mais aos gráficos.

Caso tenha alguma outra sugestão será nem vinda.

Agradecido pela sua atenção.
NR

Acho que é necessário esperar o carregamento do gráfico para chamar a função getImageURI:
 
  1. <?php
  2. google.visualization.events.addListener(my_chart, 'ready', function () {
  3. my_div.innerHTML = '<img src="' + my_chart.getImageURI() + '">';
  4. });
  5. ?>
JL

Boa Tarde!

Nataniel Rabaioli, agradeço pela sua disposição em ajudar.
Mas não obtivemos exito com o google chart, não só por esse problema mas sim em outras funcionalidade que precisaríamos em manipular o gráfico em si. Porém procuramos e adequamos com o highcharts, que se melhor em diversos requisitos que precisamos aqui.

Bom um grande abraço e obrigado pela sua disponibilidade.