用户可以在amcharts中为导出的PDF文件定义他/她自己的文件名吗?。目前默认名称是 amCharts.pdf。
参考链接AmCharts Export Config,我看到用户可以通过编程方式更改使用的默认文件名,但是当单击pdf导出时,他无法在运行时定义文件名。是否可以执行此?
答案 0 :(得分:4)
您可以使用menuReviver
附加另一个click event handler
来使用提示模式来中断运行时以覆盖文件名。
"export": {
"enabled": true,
"menuReviver": function( config, li ) {
var context = this; // INSTANCE
// MODIFY ONLY IMAGE ITEMS
if ( config.capture ) {
var title = li.getElementsByTagName( "span" )[ 0 ].textContent;
var link = document.createElement( "a" );
var span = document.createElement( "span" );
// REMOVE ORIGINAL
li.getElementsByTagName( "a" )[ 0 ].remove();
// TITLE
span.innerHTML = title;
link.appendChild( span );
function callback() {
var fileName = prompt( "Filename" );
// CHECK FILENAME
if ( fileName ) {
// CAPTURE CHART
this.capture( {}, function() {
// GET JPG DATA
this.toPDF( {}, function( base64 ) {
var info = this.defaults.formats.PDF;
// OFFER DOWNLOAD WITH GIVEN FILENAME
this.download( base64, info.mimeType, fileName + info.extension );
} );
} );
}
}
// LINK
link.addEventListener( "click", function() {
callback.apply( context, arguments );
} );
li.appendChild( link );
}
}
http://codepen.io/amcharts/pen/674b14ad4e2594a31ac59a455dda6784
如果您想手动执行此操作,可以执行以下操作:
"export": {
"enabled": true,
"menu": [ {
"format": "PDF",
"click": function() {
var fileName = prompt( "Filename:" );
// CHECK FILENAME
if ( fileName ) {
// CAPTURE CHART
this.capture( {}, function() {
// GET JPG DATA
this.toPDF( {}, function( base64 ) {
var info = this.defaults.formats.PDF;
// OFFER DOWNLOAD WITH GIVEN FILENAME
this.download( base64, info.mimeType, fileName + info.extension );
} );
} );
}
}
} ]
}