我有一些使用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会呈现,而不是一个普通的旧标记 . 最终它是完全相同的标记 .

我正在使用带有wicked-pdf的 wkhtmltopdf v0.10.0 rc2 .

有人能帮忙吗?

如果您想测试将其传递到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>