服务器端文本的像素大小,然后在页面上写入

时间:2015-01-30 07:38:39

标签: javascript html5 node.js svg d3.js

我想预先计算具有最大像素大小的文本,然后将最大宽度大小分配给所有其他文本。 getBBox给出了以下错误:

TypeError: Object [ TEXT ] has no method 'getBBox'

和getComputedTextLength()也不起作用。

这两种方法在写入页面后都会给出像素大小。我在服务器端创建图表,即nodejs,我想在将其写入页面之前计算像素大小。对此有什么方法吗?

编辑: 添加代码

    chart.selectAll("svg:text")
    .data(d3Data)
    .enter().append("svg:text")
    .attr("class", "d3LegendText")
    .attr("transform", function(d, i) {
        textLength = d.seriesName.length*6;
        if (prev_legend_x + textLength + legend_padding_x > width) {
            legend_y = legend_y + 15;
            legend_x = 7;
        } else {
            legend_x = prev_legend_x;
        }
        prev_legend_x = legend_x + textLength + legend_padding_x;
        return "translate(" + legend_x + "," + legend_y + ")"; })
    .text(function(d, i) {
        console.log(this.getBBox().width);
            return d.seriesName;
    })

您可以在变换中使用变量。我写它来计算像素大小取决于文本中的字符数。但我想要准确的文字宽度。

0 个答案:

没有答案