Ruby on rails 无法在rails 2.3应用程序中使用Wickedpdf和Highcharts以pdf格式呈现图表

Ruby on rails 无法在rails 2.3应用程序中使用Wickedpdf和Highcharts以pdf格式呈现图表,ruby-on-rails,highcharts,wicked-pdf,Ruby On Rails,Highcharts,Wicked Pdf,我必须以pdf格式呈现柱(条形)图,我使用的是wickedpdf插件和highcharts javascript。下面的代码在html视图中工作得很好,但在pdf中它不起作用,我也尝试过禁用动画和鼠标跟踪,但没有帮助 这是我的密码 <%= wicked_pdf_javascript_include_tag 'jquery-1.6.2.min', 'dr_statistics/highcharts' %> <script> $(function () { $

我必须以pdf格式呈现柱(条形)图,我使用的是wickedpdf插件和highcharts javascript。下面的代码在html视图中工作得很好,但在pdf中它不起作用,我也尝试过禁用动画和鼠标跟踪,但没有帮助

这是我的密码

<%= wicked_pdf_javascript_include_tag 'jquery-1.6.2.min', 'dr_statistics/highcharts' %>
<script>

  $(function () {
     $('#container').highcharts({
      chart: {
        type: 'column'
      },
      title: {
        text: 'Monthly Average Rainfall'
      },
      subtitle: {
        text: 'Source: WorldClimate.com'
      },
      xAxis: {
        categories: [
          'Jan',
          'Feb',
          'Mar',
          'Apr',
          'May',
          'Jun',
          'Jul',
          'Aug',
          'Sep',
          'Oct',
          'Nov',
          'Dec'
        ]
      },
      yAxis: {
        min: 0,
        title: {
          text: 'Rainfall (mm)'
        }
      },
      tooltip: {
        headerFormat: '<span style="font-size:10px">{point.key}</span><table>',
        pointFormat: '<tr><td style="color:{series.color};padding:0">{series.name}: </td>' +
          '<td style="padding:0"><b>{point.y:.1f} mm</b></td></tr>',
        footerFormat: '</table>',
        shared: true,
        useHTML: true
      },
      plotOptions: {
        column: {
          pointPadding: 0.2,
          borderWidth: 0,
          enableMouseTracking: false,
          shadow: false,
          animation: false }
      },
      series: [{
          name: 'Tokyo',
          data: [49.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]

        }, {
          name: 'New York',
          data: [83.6, 78.8, 98.5, 93.4, 106.0, 84.5, 105.0, 104.3, 91.2, 83.5, 106.6, 92.3]

        }, {
          name: 'London',
          data: [48.9, 38.8, 39.3, 41.4, 47.0, 48.3, 59.0, 59.6, 52.4, 65.2, 59.3, 51.2]

        }, {
          name: 'Berlin',
          data: [42.4, 33.2, 34.5, 39.7, 52.6, 75.5, 57.4, 60.4, 47.6, 39.1, 46.8, 51.1]

        }]

    });
  });

</script>
<div id="container"></div>

$(函数(){
$(“#容器”)。高图({
图表:{
类型:“列”
},
标题:{
文字:“月平均降雨量”
},
副标题:{
文本:'来源:WorldClimate.com'
},
xAxis:{
类别:[
“一月”,
二月,,
“三月”,
“四月”,
“五月”,
"六月",,
七月,,
"八月",,
"九月",,
“十月”,
十一月,,
“十二月”
]
},
亚克斯:{
分:0,,
标题:{
文字:“降雨量(毫米)”
}
},
工具提示:{
headerFormat:“{point.key}”,
pointFormat:“{series.name}:”+
“{point.y:.1f}mm”,
页脚格式:“”,
分享:是的,
useHTML:true
},
打印选项:{
专栏:{
点填充:0.2,
边框宽度:0,
enableMouseTracking:false,
影子:错,
动画:false}
},
系列:[{
名称:"东京",,
数据:[49.9,71.5,106.4129.2,144.0176.0,135.6148.51216.4194.1,95.6,54.4]
}, {
名称:'纽约',
数据:[83.6,78.8,98.5,93.4,106.0,84.5,105.0,104.3,91.2,83.5,106.6,92.3]
}, {
名称:“伦敦”,
数据:[48.9,38.8,39.3,41.4,47.0,48.3,59.0,59.6,52.4,65.2,59.3,51.2]
}, {
名称:“柏林”,
数据:[42.4,33.2,34.5,39.7,52.6,75.5,57.4,60.4,47.6,39.1,46.8,51.1]
}]
});
});

请在这方面提供帮助,提前感谢:)

您将无法在pdf中创建动态图表。您需要将其作为矢量图像或类似图像(jpg/png等)导入

幸运的是,highcharts可以使用phantomjs在服务器端导出图像


将highcharts图表另存为图像,并将其作为图像调用,您就可以开始了。

我正在进行一个项目,该项目使用AmCharts javascript库动态生成图表,然后需要在PDF报告中显示这些图表。为了成功做到这一点,我们在使用
render\u To\u string()
生成的html页面上使用WickedPdf的
pdf\u from\u string()
,并使用javascript延迟,以确保图表已呈现

下面是我们在reports\u控制器中使用show()方法的示例

    format.pdf do
      pdf = WickedPdf.new.pdf_from_string(
        render_to_string('reports/show.html.erb',
          :layout => 'layouts/pdf.html',
          :javascript_delay => 5000),
      )
      send_data pdf, filename: "#{@report.name}.pdf",
            type: 'application/pdf',
            disposition: 'inline'

我知道这个问题很久以前就提出了,但我希望这会有所帮助。

这不能满足我的要求,我不仅需要一个图表,还需要所有需要动态计算并以pdf格式显示的图表,这些图表以html格式完美呈现,但不会以pdf格式出现。