使用wicked-pdf

时间:2015-06-05 15:19:03

标签: ruby-on-rails pdf svg d3.js wicked-pdf

我有一些使用D3生成的图表,在Ruby on Rails 4应用程序的页面上呈现。

我正在使用wicked-pdf gem将其转换为PDF以进行漂亮的打印。生成PDF正在运行,但并非所有SVG都已呈现。

通过Javascript生成的SVG正确呈现,但HTML中的SVG没有。

这是我创建的测试页面的JS小提琴:http://jsfiddle.net/Sidane/162cd58y/

使用D3生成顶部圆圈,并在使用wicked-pdf生成PDF时显示。已存在于HTML中的第二个圆圈不会出现在PDF中。第二个圆圈的标记与D3为第一个圆圈生成的标记相同。

我不明白为什么JS生成的SVG会渲染但不是一个普通的旧标记。最终它是完全相同的标记。

我正在使用wkhtmltopdf v0.10.0 rc2和wicked-pdf。

任何人都可以提供帮助吗?

如果您想测试将其传递到wkhtmltopdf:

,这是完整的HTML
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.js"></script>
  </head>

  <body>
    <div id="target" style="width: 70px; height: 70px;"></div>

    <div style="width: 70px; height: 70px;">
      <svg width="200" height="200">
        <circle cx="30" cy="30" r="20"></circle>
      </svg>
    </div>

    <script type="text/javascript">
      //Make an SVG Container
      var svgContainer = d3.select("#target").append("svg")
                                          .attr("width", 70)
                                          .attr("height", 70);

      //Draw the Circle
      var circle = svgContainer.append("circle")
                               .attr("cx", 30)
                               .attr("cy", 30)
                               .attr("r", 20);
    </script>
  </body>
</html>

0 个答案:

没有答案