Javascript 如何将整个div传递给XEPOnline.js库,而不仅仅是第一个svg元素?
我正在使用css2pdf@cloudformatter将my plotly.js svg导出为pdf。它工作得很好,但它不会导出热图的色条。我使用“srctype:'svg'”选项将svg保存为与我网站上的格式完全相同的格式。请看一下小提琴 以下是脚本:Javascript 如何将整个div传递给XEPOnline.js库,而不仅仅是第一个svg元素?,javascript,css,pdf,svg,plotly,Javascript,Css,Pdf,Svg,Plotly,我正在使用css2pdf@cloudformatter将my plotly.js svg导出为pdf。它工作得很好,但它不会导出热图的色条。我使用“srctype:'svg'”选项将svg保存为与我网站上的格式完全相同的格式。请看一下小提琴 以下是脚本: <script src="https://cdn.plot.ly/plotly-latest.min.js"></script> <script src="http://www.cloudformatter.com
<script src="https://cdn.plot.ly/plotly-latest.min.js"></script>
<script src="http://www.cloudformatter.com/Resources/Pages/CSS2Pdf/Script/xeponline.jqplugin.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<body>
<br><br>
<!-- Source and on-click event for plotly.js -->
<div id="plotly_chart" style="width: 90%; height: 270px"></div>
<button onclick="return xepOnline.Formatter.Format('plotly_chart',{render:'download',srctype:'svg' });">Get PDF</button>
<script type="text/javascript">
Chart = document.getElementById('plotly_chart');
var data = [
{
z: [[1, 20, 30], [20, 1, 60], [30, 60, 1]],
type: 'heatmap'
}
];
Plotly.newPlot('plotly_chart', data);
</script>
感谢您在这个问题上的帮助 您已经知道如何不仅仅渲染第一个svg。颜色条位置的问题可能是某些浮动/位置css在打印中不起作用。我会检查一下的。谢谢。我试图将colorbar从div的第二个svg元素移动到第一个svg元素,方法是根据它的类名(colorbar=document.getElementById(“plotly_chart”).className=“infolayer”)选择它并将其附加到第一个svg中,但这会把整个事情搞砸。但原则上这可能是另一种选择,人们仍然可以使用srctype:'svg'选项?
var colorbar = {
title: test,
titlefont: {
size: 12,
},
titleside: "top",
thickness: 20,
nticks: ticknumber,
tickfont: {
size:10.5
},
outlinewidth: 0,
xpad: 1,
ypad:3
};
Plotly.newPlot('plotly_chart', data).append("colorbar");