@cloudformatter template
A simple starting template for @cloudformatter testing
HTML
<script src="http://www.cloudformatter.com/Resources/Pages/CSS2Pdf/Script/xepOnline.jqPlugin.js"></script>
<script src="https://www.google.com/jsapi?autoload={'modules':[{'name':'visualization','version':'1.1','packages':['corechart']}]}"></script>
<div id="buttons" class="buttons"></div>
<hr/>
<div id="JSFiddle">
<div id="chart_div" style="width: 1100px; height: 500px;"></div>
</div>
CSS
.buttons button:first-child {
border-top-left-radius: 5px;
border-bottom-left-radius: 5px;
}
.buttons button:last-child {
border-top-right-radius: 4px;
border-bottom-right-radius: 4px;
}
button {
color:#111;
background-image: linear-gradient(to bottom,#ffffff 0,#777777 100%);
background-repeat: repeat-x;
padding: 5px 10px;
font-size: 12px;
line-height: 1.5;
cursor: pointer;
border-width:1px;
border-color: #777;
text-shadow: 0 -1px 0 rgba(0,0,0,.1);
box-shadow: inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);
}
button:hover{
color:#fff;
background-image: linear-gradient(to top,#337ab7 0,#265a88 100%);
}
JavaScript
google.setOnLoadCallback(drawChart);
<!-- This adds the proper namespace on the generated SVG -->
function AddNamespaceHandler(){
var svg = jQuery('#chart_div svg');
svg.attr("xmlns", "http://www.w3.org/2000/svg");
svg.css('overflow','visible');
}
<!-- This generates the google chart -->
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Year', 'Sales', 'Expenses'],
['2009', 1000, 600],
['2010', 1170, 1460],
['2011', 1660, 1220],
['2012', 1030, 540],
['2013', 1000, 400],
['2014', 1170, 460],
['2015', 660, 1120],
['2016', 1030, 540]
]);
var options = {
title: 'Company Performance',
hAxis: {title: 'Year', titleTextStyle: {color: '#333'}},
vAxis: {minValue: 0}
};
var chart = new google.visualization.AreaChart(document.getElementById('chart_div'));
<!-- Add the event handler which adds the proper namespace on the SVG -->
google.visualization.events.addListener(chart, 'ready', AddNamespaceHandler);
chart.draw(data, options);
}
<!-- @cloudformatter calls to render the SVG -->
<!-- Convert the SVG to PDF and download it -->
var click="return xepOnline.Formatter.Format('JSFiddle', {render:'download', srctype:'svg'})";
jQuery('#buttons').append('<button onclick="'+ click +'">PDF</button>');
<!-- Convert the SVG to PNG@120dpi and open it -->
click="return xepOnline.Formatter.Format('JSFiddle', {render:'newwin', mimeType:'image/png', resolution:'120', srctype:'svg'})";
jQuery('#buttons').append('<button onclick="'+ click +'">PNG @120dpi</button>');
<!-- Convert the SVG to JPG@300dpi and open it -->
click="return xepOnline.Formatter.Format('JSFiddle', {render:'newwin', mimeType:'image/jpg', resolution:'300', srctype:'svg'})";
jQuery('#buttons').append('<button onclick="'+ click +'">JPG @300dpi</button>');