Fiddle
I created this fiddle but when try getImageURI()
from chart (orgchart google charts) one error is generated.
ERROR: "Uncaught TypeError: chart.getImageURI is not a function"
I need to generate an image or a PDF from orgchart created. Is it possible?
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});
}
Fiddle
I created this fiddle but when try getImageURI()
from chart (orgchart google charts) one error is generated.
ERROR: "Uncaught TypeError: chart.getImageURI is not a function"
I need to generate an image or a PDF from orgchart created. Is it possible?
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});
}
Share
Improve this question
edited Apr 22, 2017 at 3:04
WhiteHat
61.3k7 gold badges53 silver badges136 bronze badges
asked Jul 28, 2016 at 9:35
MarinMarin
1,0201 gold badge10 silver badges37 bronze badges
2 Answers
Reset to default 3similar to Table Charts, Org charts produce HTML <table>
elements, rather than SVG
which is why getImageURI
isn't listed in the Methods section for either chart
remend using library to convert the HTML to Canvas (html2canvas.js
),
which can then be saved as base64 string,
similar to getImageURI
see this answer, for a little more info on the topic...
Rendering HTML elements to canvas
try this code:
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();
});
}
Don't forget to include html2canvas.js