wicked_pdf gem + Highcharts

时间:2016-03-20 09:21:22

标签: javascript jquery ruby-on-rails highcharts

我读了一些答案,但没有解决我的问题。

Html图表运行良好,但是当我使用wicked_pdf导出到PDF时,图表不显示。

我设置图表选项:

 plotOptions: {
      series: {
        enableMouseTracking: false,
        shadow: false, 
        animation: false
      }
    },

尝试给javascript延迟。

根据我读过的一些帖子,我尝试了再次包含并且不再在我的布局中包含jquery和/或highcharts js文件。

但是没有什么对我有用,我的wkhtmltopdf库版本是:

wkhtmltopdf 0.12.2.1 (with patched qt)

我读到的所有答案都是2年以上,所以也许有人可以用更新的方法帮助我。

1 个答案:

答案 0 :(得分:3)

终于解决了。

有些步骤没有必要,但我会注意到它可以帮助大多数人:

1.-更改wkhtmltopdf版本,我使用的是0.12,现在我安装了

gem 'wkhtmltopdf-binary'

这个宝石适用于wkhtmltopdf的0.9版本

2.-从Highcharts中删除动画和其他内容。似乎没有它也可以工作,但更好的是确保,我在本地进行测试,动画之类的东西会增加不及时渲染完整图表的风险。

将此配置添加到图表容器文件:

plotOptions: {
  series: {
    enableMouseTracking: false,
    shadow: false, 
    animation: false
  }
},

****注意:检查你是否已经在图表的另一部分设置了plotOptions,如果你已经将这些行添加到现有的plotOptions中,如果你把它写两次就不行了。***

3.-将HTML结构添加到布局html文件中,请记住wicked_pdf无法看到您的资产管道。

<HTML>
<HEAD> scripts </HEAD>
<BODY> charts and text </BODY>
</HTML>

4.-在PDF布局视图(HEAD标签)中包括内部和外部JS文件(如果有的话,包括CSS文件),在我的例子中,我使用js文件来存储我的图表模板并生成如下的动态图表:

   <script src="https://code.jquery.com/jquery-2.2.2.min.js" integrity="sha256-36cp2Co+/62rEAAYHLmRCPIych47CvdM+uTBJwSzWjI=" crossorigin="anonymous"></script>
    <script src="https://code.highcharts.com/highcharts.js"></script>
    <script src="https://code.highcharts.com/modules/exporting.js"></script>
    <script src="https://code.highcharts.com/modules/heatmap.js"></script>
    <%= wicked_pdf_javascript_include_tag "chart_templates/chart_bar_combined" %>

希望它有所帮助,这个答案结合了一些简短解释的解决方案。

此致