我有一些使用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>