Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails SVG';使用恶意pdf创建pdf时不渲染_Ruby On Rails_Pdf_Svg_D3.js_Wicked Pdf - Fatal编程技术网

Ruby on rails SVG';使用恶意pdf创建pdf时不渲染

Ruby on rails SVG';使用恶意pdf创建pdf时不渲染,ruby-on-rails,pdf,svg,d3.js,wicked-pdf,Ruby On Rails,Pdf,Svg,D3.js,Wicked Pdf,我在RubyonRails4应用程序的一个页面上绘制了许多用D3生成的图形 我正在使用wickedpdfgem将其转换为pdf,以便进行漂亮的打印。生成PDF正在工作,但并非所有SVG都已渲染 通过Javascript生成的SVG正确呈现,但HTML中的SVG不正确 下面是我创建的一个测试页面的JS文件: 顶部圆圈由D3生成,并在生成PDF时显示。第二个圆圈已经出现在HTML中,但没有出现在PDF中。第二个圆的标记与D3为第一个圆生成的标记相同 我不明白为什么JS生成的SVG会呈现,而不是一个普

我在RubyonRails4应用程序的一个页面上绘制了许多用D3生成的图形

我正在使用
wickedpdf
gem将其转换为pdf,以便进行漂亮的打印。生成PDF正在工作,但并非所有SVG都已渲染

通过Javascript生成的SVG正确呈现,但HTML中的SVG不正确

下面是我创建的一个测试页面的JS文件:

顶部圆圈由D3生成,并在生成PDF时显示。第二个圆圈已经出现在HTML中,但没有出现在PDF中。第二个圆的标记与D3为第一个圆生成的标记相同

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

我正在使用
wkhtmltopdf
v0.10.0rc2和邪恶的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>

//制作一个SVG容器
var svgContainer=d3.选择(“目标”).追加(“svg”)
.attr(“宽度”,70)
.attr(“高度”,70);
//画圆圈
var circle=svgContainer.append(“circle”)
.attr(“cx”,30)
.attr(“cy”,30)
.attr(“r”,20);

你找到答案了吗。如果是,请告诉我您是如何解决的,因为我也面临同样的问题。