I have some troubles to export spline charts with multiple series.
Here is the exception :
Code: Select all
Converting fa08a44110ef0fcded6341c7c7d4bbf4.svg to /var/www/highchart_project/web/uploads/fa08a44110ef0fcded6341c7c7d4bbf4.png ... org.apache.batik.transcoder.TranscoderException: null
Enclosed Exception:
missing initial moveto in path definition
at org.apache.batik.transcoder.image.ImageTranscoder.transcode(ImageTranscoder.java:132)
at org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:142)
at org.apache.batik.transcoder.SVGAbstractTranscoder.transcode(SVGAbstractTranscoder.java:156)
at org.apache.batik.apps.rasterizer.SVGConverter.transcode(SVGConverter.java:1001)
at org.apache.batik.apps.rasterizer.SVGConverter.execute(SVGConverter.java:717)
at org.apache.batik.apps.rasterizer.Main.execute(Main.java:938)
at org.apache.batik.apps.rasterizer.Main.main(Main.java:992)
... error (SVGConverter.error.while.rasterizing.file)
No problem either when i use the http://export.highcharts.com/ url.
This the PHP function used for the export :
Code: Select all
public static function exportToFile($type, $svg, $width, $filename = 'chart') {
$type_string = '';
$ext = '';
$temp_name = md5(rand());
$result = array('file_name' => '', 'file_content' => '');
if (get_magic_quotes_gpc())
$svg = stripslashes($svg);
if ($type == 'image/png') {
$type_string = '-m image/png';
$ext = 'png';
} elseif ($type == 'image/jpeg') {
$type_string = '-m image/jpeg';
$ext = 'jpg';
} elseif ($type == 'application/pdf') {
$type_string = '-m application/pdf';
$ext = 'pdf';
} elseif ($type == 'image/svg+xml') {
$ext = 'svg';
}
$outfile = sfConfig::get('sf_upload_dir')."/$temp_name.$ext";
if ($type_string == '')
throw new Exception('Invalid file type.');
// size
if ($width != null) {
$width = (int) $width;
$width = "-w $width";
}
try {
// generate the temporary file
if (!file_put_contents(sfConfig::get('sf_upload_dir')."/$temp_name.svg", $svg))
throw new Exception('Couldn\'t create temporary file. Check that the directory permissions for the /temp directory are set to 777.');
// do the conversion
$output = shell_exec("java -jar ". sfConfig::get('sf_lib_dir') ."/utils/batik/batik-rasterizer.jar $type_string -d $outfile $width ".sfConfig::get('sf_upload_dir')."/$temp_name.svg");
// catch error
if (!is_file($outfile) || filesize($outfile) < 20)
throw new Exception('Error while converting SVG : '.$output);
} catch (Exception $exc) {
unlink(sfConfig::get('sf_upload_dir')."/$temp_name.svg");
unlink($outfile);
throw $exc;
}
$result['file_content'] = file_get_contents($outfile);
$result['file_name'] = $filename.'.'.$ext;
// delete it
unlink(sfConfig::get('sf_upload_dir')."/$temp_name.svg");
unlink($outfile);
return $result;
}
Code: Select all
chart_container = new Highcharts.Chart({
chart: {renderTo: 'container',zoomType: 'xy'},
title: {text: 'Nombre de comm. en succ├â┬¿s / ├â┬®chec'},
tooltip: {
formatter: function(){
var tooltip = ''+Highcharts.dateFormat('%A %e %B %Y %H:%M', this.x)+'<br />';
tooltip += ''+this.series.name+' : ';
tooltip += ''+this.y;
return tooltip;
}
},
xAxis: {type: 'datetime', maxZoom: 3600000, dateTimeLabelFormats: {hour: '%e/%m %H:%M'}, labels: {rotation: 20}},
yAxis: [
{title: {text: 'Nombre de comm.'}, maxZoom: 100, startOnTick: true, showFirstLabel: false},
{gridLineWidth: 0, title: {text: '% comm. en succès', style: {color: '#89A54E'}}, min: 0, minPadding: 0, max: 100, maxPadding: 0, startOnTick: false, opposite: true},
],
legend: {enabled: true},
series: [{yAxis: 0, type: 'spline', name: 'Comm. en succ├â┬¿s', pointInterval: 900000, data: [[Date.UTC(2011, 7, 8, 0, 0), 42],[Date.UTC(2011, 7, 8, 0, 15), 35],[Date.UTC(2011, 7, 8, 0, 30), 37],[Date.UTC(2011, 7, 8, 0, 45), 20],[Date.UTC(2011, 7, 8, 1, 0), 38],[Date.UTC(2011, 7, 8, 1, 15), 30],[Date.UTC(2011, 7, 8, 1, 30), 29],[Date.UTC(2011, 7, 8, 1, 45), 26],[Date.UTC(2011, 7, 8, 2, 0), 53],[Date.UTC(2011, 7, 8, 2, 15), 70],[Date.UTC(2011, 7, 8, 2, 30), 82],[Date.UTC(2011, 7, 8, 2, 45), 97],[Date.UTC(2011, 7, 8, 3, 0), 104],[Date.UTC(2011, 7, 8, 3, 15), 82],[Date.UTC(2011, 7, 8, 3, 30), 81],[Date.UTC(2011, 7, 8, 3, 45), 47],[Date.UTC(2011, 7, 8, 4, 0), 30],[Date.UTC(2011, 7, 8, 4, 15), 28],[Date.UTC(2011, 7, 8, 4, 30), 37],[Date.UTC(2011, 7, 8, 4, 45), 26],[Date.UTC(2011, 7, 8, 5, 0), 48],[Date.UTC(2011, 7, 8, 5, 15), 25],[Date.UTC(2011, 7, 8, 5, 30), 52],[Date.UTC(2011, 7, 8, 5, 45), 57],[Date.UTC(2011, 7, 8, 6, 0), 79],[Date.UTC(2011, 7, 8, 6, 15), 66],[Date.UTC(2011, 7, 8, 6, 30), 106],[Date.UTC(2011, 7, 8, 6, 45), 105],[Date.UTC(2011, 7, 8, 7, 0), 171],[Date.UTC(2011, 7, 8, 7, 15), 217],[Date.UTC(2011, 7, 8, 7, 30), 326],[Date.UTC(2011, 7, 8, 7, 45), 390],[Date.UTC(2011, 7, 8, 8, 0), 725],[Date.UTC(2011, 7, 8, 8, 15), 955],[Date.UTC(2011, 7, 8, 8, 30), 1360],[Date.UTC(2011, 7, 8, 8, 45), 1716],[Date.UTC(2011, 7, 8, 9, 0), 2271],[Date.UTC(2011, 7, 8, 9, 15), 2423],[Date.UTC(2011, 7, 8, 9, 30), 2659],[Date.UTC(2011, 7, 8, 9, 45), 2894],[Date.UTC(2011, 7, 8, 10, 0), 3118],[Date.UTC(2011, 7, 8, 10, 15), 3150],[Date.UTC(2011, 7, 8, 10, 30), 3303],[Date.UTC(2011, 7, 8, 10, 45), 3354],[Date.UTC(2011, 7, 8, 11, 0), 3307],[Date.UTC(2011, 7, 8, 11, 15), 3396],[Date.UTC(2011, 7, 8, 11, 30), 3319],[Date.UTC(2011, 7, 8, 11, 45), 3195],[Date.UTC(2011, 7, 8, 12, 0), 2082],[Date.UTC(2011, 7, 8, 12, 15), 1427],[Date.UTC(2011, 7, 8, 12, 30), 1022],[Date.UTC(2011, 7, 8, 12, 45), 817],[Date.UTC(2011, 7, 8, 13, 0), 902],[Date.UTC(2011, 7, 8, 13, 15), 928],[Date.UTC(2011, 7, 8, 13, 30), 1351],[Date.UTC(2011, 7, 8, 13, 45), 1841],[Date.UTC(2011, 7, 8, 14, 0), 2901],[Date.UTC(2011, 7, 8, 14, 15), 3163],[Date.UTC(2011, 7, 8, 14, 30), 3285],[Date.UTC(2011, 7, 8, 14, 45), 3328],[Date.UTC(2011, 7, 8, 15, 0), 3095],[Date.UTC(2011, 7, 8, 15, 15), 3148],[Date.UTC(2011, 7, 8, 15, 30), 1899]]},{yAxis: 0, type: 'spline', name: 'Comm. en ├â┬®chec', pointInterval: 900000, data: [[Date.UTC(2011, 7, 8, 0, 0), 52],[Date.UTC(2011, 7, 8, 0, 15), 47],[Date.UTC(2011, 7, 8, 0, 30), 39],[Date.UTC(2011, 7, 8, 0, 45), 48],[Date.UTC(2011, 7, 8, 1, 0), 47],[Date.UTC(2011, 7, 8, 1, 15), 43],[Date.UTC(2011, 7, 8, 1, 30), 47],[Date.UTC(2011, 7, 8, 1, 45), 48],[Date.UTC(2011, 7, 8, 2, 0), 52],[Date.UTC(2011, 7, 8, 2, 15), 46],[Date.UTC(2011, 7, 8, 2, 30), 55],[Date.UTC(2011, 7, 8, 2, 45), 58],[Date.UTC(2011, 7, 8, 3, 0), 53],[Date.UTC(2011, 7, 8, 3, 15), 52],[Date.UTC(2011, 7, 8, 3, 30), 57],[Date.UTC(2011, 7, 8, 3, 45), 47],[Date.UTC(2011, 7, 8, 4, 0), 45],[Date.UTC(2011, 7, 8, 4, 15), 40],[Date.UTC(2011, 7, 8, 4, 30), 35],[Date.UTC(2011, 7, 8, 4, 45), 39],[Date.UTC(2011, 7, 8, 5, 0), 44],[Date.UTC(2011, 7, 8, 5, 15), 39],[Date.UTC(2011, 7, 8, 5, 30), 46],[Date.UTC(2011, 7, 8, 5, 45), 43],[Date.UTC(2011, 7, 8, 6, 0), 54],[Date.UTC(2011, 7, 8, 6, 15), 57],[Date.UTC(2011, 7, 8, 6, 30), 48],[Date.UTC(2011, 7, 8, 6, 45), 49],[Date.UTC(2011, 7, 8, 7, 0), 55],[Date.UTC(2011, 7, 8, 7, 15), 61],[Date.UTC(2011, 7, 8, 7, 30), 91],[Date.UTC(2011, 7, 8, 7, 45), 88],[Date.UTC(2011, 7, 8, 8, 0), 130],[Date.UTC(2011, 7, 8, 8, 15), 130],[Date.UTC(2011, 7, 8, 8, 30), 190],[Date.UTC(2011, 7, 8, 8, 45), 258],[Date.UTC(2011, 7, 8, 9, 0), 293],[Date.UTC(2011, 7, 8, 9, 15), 304],[Date.UTC(2011, 7, 8, 9, 30), 328],[Date.UTC(2011, 7, 8, 9, 45), 383],[Date.UTC(2011, 7, 8, 10, 0), 402],[Date.UTC(2011, 7, 8, 10, 15), 388],[Date.UTC(2011, 7, 8, 10, 30), 391],[Date.UTC(2011, 7, 8, 10, 45), 455],[Date.UTC(2011, 7, 8, 11, 0), 394],[Date.UTC(2011, 7, 8, 11, 15), 438],[Date.UTC(2011, 7, 8, 11, 30), 394],[Date.UTC(2011, 7, 8, 11, 45), 406],[Date.UTC(2011, 7, 8, 12, 0), 235],[Date.UTC(2011, 7, 8, 12, 15), 284],[Date.UTC(2011, 7, 8, 12, 30), 176],[Date.UTC(2011, 7, 8, 12, 45), 157],[Date.UTC(2011, 7, 8, 13, 0), 176],[Date.UTC(2011, 7, 8, 13, 15), 162],[Date.UTC(2011, 7, 8, 13, 30), 186],[Date.UTC(2011, 7, 8, 13, 45), 233],[Date.UTC(2011, 7, 8, 14, 0), 327],[Date.UTC(2011, 7, 8, 14, 15), 431],[Date.UTC(2011, 7, 8, 14, 30), 384],[Date.UTC(2011, 7, 8, 14, 45), 404],[Date.UTC(2011, 7, 8, 15, 0), 410],[Date.UTC(2011, 7, 8, 15, 15), 447],[Date.UTC(2011, 7, 8, 15, 30), 287]]},{dashStyle: 'shortdot', marker: {enabled: false}, yAxis: 1, type: 'spline', name: '% comm. en succ├â┬¿s', pointInterval: 900000, data: [[Date.UTC(2011, 7, 08, 00, 00), 44],[Date.UTC(2011, 7, 08, 00, 15), 42],[Date.UTC(2011, 7, 08, 00, 30), 48],[Date.UTC(2011, 7, 08, 00, 45), 29],[Date.UTC(2011, 7, 08, 01, 00), 44],[Date.UTC(2011, 7, 08, 01, 15), 41],[Date.UTC(2011, 7, 08, 01, 30), 38],[Date.UTC(2011, 7, 08, 01, 45), 35],[Date.UTC(2011, 7, 08, 02, 00), 50],[Date.UTC(2011, 7, 08, 02, 15), 60],[Date.UTC(2011, 7, 08, 02, 30), 59],[Date.UTC(2011, 7, 08, 02, 45), 62],[Date.UTC(2011, 7, 08, 03, 00), 66],[Date.UTC(2011, 7, 08, 03, 15), 61],[Date.UTC(2011, 7, 08, 03, 30), 58],[Date.UTC(2011, 7, 08, 03, 45), 50],[Date.UTC(2011, 7, 08, 04, 00), 40],[Date.UTC(2011, 7, 08, 04, 15), 41],[Date.UTC(2011, 7, 08, 04, 30), 51],[Date.UTC(2011, 7, 08, 04, 45), 40],[Date.UTC(2011, 7, 08, 05, 00), 52],[Date.UTC(2011, 7, 08, 05, 15), 39],[Date.UTC(2011, 7, 08, 05, 30), 53],[Date.UTC(2011, 7, 08, 05, 45), 57],[Date.UTC(2011, 7, 08, 06, 00), 59],[Date.UTC(2011, 7, 08, 06, 15), 53],[Date.UTC(2011, 7, 08, 06, 30), 68],[Date.UTC(2011, 7, 08, 06, 45), 68],[Date.UTC(2011, 7, 08, 07, 00), 75],[Date.UTC(2011, 7, 08, 07, 15), 78],[Date.UTC(2011, 7, 08, 07, 30), 78],[Date.UTC(2011, 7, 08, 07, 45), 81],[Date.UTC(2011, 7, 08, 08, 00), 84],[Date.UTC(2011, 7, 08, 08, 15), 88],[Date.UTC(2011, 7, 08, 08, 30), 87],[Date.UTC(2011, 7, 08, 08, 45), 86],[Date.UTC(2011, 7, 08, 09, 00), 88],[Date.UTC(2011, 7, 08, 09, 15), 88],[Date.UTC(2011, 7, 08, 09, 30), 89],[Date.UTC(2011, 7, 08, 09, 45), 88],[Date.UTC(2011, 7, 08, 10, 00), 88],[Date.UTC(2011, 7, 08, 10, 15), 89],[Date.UTC(2011, 7, 08, 10, 30), 89],[Date.UTC(2011, 7, 08, 10, 45), 88],[Date.UTC(2011, 7, 08, 11, 00), 89],[Date.UTC(2011, 7, 08, 11, 15), 88],[Date.UTC(2011, 7, 08, 11, 30), 89],[Date.UTC(2011, 7, 08, 11, 45), 88],[Date.UTC(2011, 7, 08, 12, 00), 89],[Date.UTC(2011, 7, 08, 12, 15), 83],[Date.UTC(2011, 7, 08, 12, 30), 85],[Date.UTC(2011, 7, 08, 12, 45), 83],[Date.UTC(2011, 7, 08, 13, 00), 83],[Date.UTC(2011, 7, 08, 13, 15), 85],[Date.UTC(2011, 7, 08, 13, 30), 87],[Date.UTC(2011, 7, 08, 13, 45), 88],[Date.UTC(2011, 7, 08, 14, 00), 89],[Date.UTC(2011, 7, 08, 14, 15), 88],[Date.UTC(2011, 7, 08, 14, 30), 89],[Date.UTC(2011, 7, 08, 14, 45), 89],[Date.UTC(2011, 7, 08, 15, 00), 88],[Date.UTC(2011, 7, 08, 15, 15), 87],[Date.UTC(2011, 7, 08, 15, 30), 86]]}],
plotOptions: {
series: {
marker: {radius: 0},
cursor: 'pointer',
point: {
events: {
click: function() {
var form_serialized = $('#indicator-form').serialize();
form_serialized += '&indicator%5Bdate_selected%5D='+Highcharts.dateFormat('%Y-%m-%d+%H%3A%M%3A%S', this.x);
form_serialized += '&indicator%5Bserie_name%5D='+this.series.name;
$('#export-dialog').dialog({
resizable: false,
height: 120,
modal: true,
buttons: {
Exporter: function() {
$(this).dialog('close');
$(document).attr('location', '/web/frontend_dev.php/Export.csv'+'?'+form_serialized);
},
Annuler: function() {
$(this).dialog('close');
}
}
});
}
}
}
}
}
});
EDIT :
Working on Firefox and IE but not with Chrome...!!
EDIT 2:
That was because of the open JDK. I've changed it for a classic Sun Java and it's working.