【问题标题】:getImageURI() not work from orgchart by googlegetImageURI() 在 Google 的 orgchart 中不起作用
【发布时间】:2019-02-27 19:30:28
【问题描述】:

Fiddle

我创建了这个小提琴,但是当从图表(orgchart 谷歌图表)尝试getImageURI() 时会生成一个错误。

错误:“未捕获的 TypeError:chart.getImageURI 不是函数”

我需要从创建的 orgchart 生成图像或 PDF。有可能吗?

google.charts.load('current', {packages:["corechart","orgchart"]});
google.charts.setOnLoadCallback(drawChart);

function drawChart() {
    var data = new google.visualization.DataTable();
    data.addColumn('string', 'Name');
    data.addColumn('string', 'Manager');
    data.addColumn('string', 'ToolTip');

    // For each orgchart box, provide the name, manager, and tooltip to show.
    data.addRows([
      [{v:'Mike', f:'Mike<div style="color:red; font-style:italic">President</div>'},
       '', 'The President'],
      [{v:'Jim', f:'Jim<div style="color:red; font-style:italic">Vice President</div>'},
       'Mike', 'VP'],
      ['Alice', 'Mike', ''],
      ['Bob', 'Jim', 'Bob Sponge'],
      ['Carol', 'Bob', '']
    ]);

    // Create the chart.
    var chart = new google.visualization.OrgChart(document.getElementById('chart_div'));

    google.visualization.events.addListener(chart, 'ready', function () {
        $( "#chart_div2" ).append( '<img src="' + chart.getImageURI() + '">' );
    });
    // Draw the chart, setting the allowHtml option to true for the tooltips.
    chart.draw(data, {allowHtml:true});
}

【问题讨论】:

    标签: javascript jquery charts google-visualization


    【解决方案1】:

    类似于Table Charts,组织图表生成HTML &lt;table&gt; 元素,而不是SVG

    这就是为什么getImageURI 没有在任一图表的Methods 部分中列出

    建议使用库将 HTML 转换为 Canvas (html2canvas.js),
    然后可以将其保存为 base64 字符串,
    类似于getImageURI

    查看此答案,了解有关该主题的更多信息...
    Rendering HTML elements to canvas

    【讨论】:

    • 希望这有帮助,也找到了这个小提琴div to image...
    【解决方案2】:

    试试这个代码:

        function printImg() {
            html2canvas($('#chart_div').get(0)).then( function (canvas) {
                var image = convertCanvasToImage(canvas);
                var htmlToPrint = image.outerHTML ;
                newWin = window.open("");
                newWin.document.write(htmlToPrint);
                newWin.print();
                newWin.close();
            });
        }
    

    不要忘记包含 html2canvas.js

    【讨论】:

      猜你喜欢
      • 2015-04-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 2011-04-01
      • 2020-12-14
      • 2013-02-23
      相关资源
      最近更新 更多