jko*_*icz 4 javascript phantomjs d3.js nvd3.js
我想将NVD3图表转换为PDF文档.这些图表通常显示在浏览器中(我无法为每个图表创建单独的打印和显示实例),我使用PhantomJS完成所有工作,但我遇到了一个问题,我似乎无法找到一个好的解决方案至.
所有NVD3模型都使用转换,但只有部分转换受transitionDuration选项影响.由于这些转换,我现在必须在"捕获"PhantomJS中的屏幕之前使用超时来制作PDF,否则结果文档会在转换过程中拍摄那些图表.显然我宁愿不必等待.
PhantomJS使用print媒体类型来渲染PDF,因此很容易禁用任何CSS3动画(使用媒体查询),但我找不到任何关闭D3转换的方法(换句话说 - 强制默认转换持续时间为0).我可以print在JavaScript中检测媒体类型,但找不到全局关闭D3/NVD3中动画的好方法......这就是我所拥有的并且它并没有真正做多少:
var chart = nv.models.multiBarChart()
.tooltipContent(tooltip)
.stacked(true)
.showControls(false);
var duration = 1000; // default duration
if(window.matchMedia) {
if(window.matchMedia('print').matches) {
duration = 1; // duration for print
}
}
chart.transitionDuration(duration);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3484 次 |
| 最近记录: |