Amcharts 导出pdf文件的用户定义名称?

Amcharts 导出pdf文件的用户定义名称?,amcharts,Amcharts,用户是否可以在amcharts?中为导出的PDF文件定义自己的文件名。当前默认名称为amcharts.PDF。 关于链接,我看到用户可以通过编程更改使用的默认文件名,但是,当单击“导出为pdf”时,他无法在运行时定义文件名。是否可以这样做?您可以使用menuReviver附加另一个click事件处理程序,以提示模式中断运行时以覆盖文件名 "export": { "enabled": true, "menuReviver": function( config, li ) { var

用户是否可以在amcharts?中为导出的PDF文件定义自己的文件名。当前默认名称为amcharts.PDF。


关于链接,我看到用户可以通过编程更改使用的默认文件名,但是,当单击“导出为pdf”时,他无法在运行时定义文件名。是否可以这样做?

您可以使用
menuReviver
附加另一个
click事件处理程序
,以提示模式中断运行时以覆盖文件名

"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 );
    }
  }

如果您想手动执行此操作,可以按以下方式执行:

"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 );
          } );
        } );
      }
    }
  } ]
}

@martynasma有什么想法吗?你的意思是你只想更改导出文件的默认名称,还是你想在用户单击“导出”时实际要求用户输入文件名?后面的一个。想让用户在单击“导出->pdf”时输入文件名。明白了。这是绝对可行的。让我想一想。您是希望仍然使用amCharts导出按钮触发导出,还是有自己的按钮?在第一种情况下,我认为你必须分开做。像更改
chart.export.config.fileName=“new fileName”
然后
chart.validateNow()
接受更改,然后像正常一样导出。太好了!。。按照我想要的方式工作,只有一个小故障。如果我取消提示,该文件仍会以与文件类型相同的文件名下载。对此有任何更正吗?我已更新了答案。第一个示例:替换“a”元素以附加修改的事件侦听器。第二个示例:只需检查提示值。Hi@Maertz如果您想要不止一个,例如“JPG、PDF、CSV和ANNOTATE”,那么如何执行此操作?只需将另一项添加到菜单数组中即可。查看所有选项的说明或amcharts.com的知识库。