将融合图导出到 ppt

Posted

技术标签:

【中文标题】将融合图导出到 ppt【英文标题】:export fusioncharts to ppt 【发布时间】:2012-07-04 14:43:39 【问题描述】:

在这里,我尝试在单击按钮时将 fusioncharts 导出为 ppt。首先,我将 fusioncharts 转换为图像,然后将它们导出为 ppt。因为我需要在保存图像后生成 ppt,所以我使用的是 秒表 javascript 中的函数来计算将融合图转换为图像所需的时间。这是我的代码:

 <script type="text/javascript">
            var initiateExport = false;
            var _sw = new StopWatch();
            var time;
            function exportReport() 
                exportCharts();
                                return false;
                
            function exportCharts() 
                _sw.start();
            var exportFormat = 'JPG';
            initiateExport = true;
            for (var chartRef in FusionCharts.items) 
                if (FusionCharts.items[chartRef].exportChart) 
                    document.getElementById("linkToExportedFile").innerhtml = "Exporting...";
                    FusionCharts.items[chartRef].exportChart( "exportFormat": exportFormat );

                
                else 
                    document.getElementById("linkToExportedFile").innerHTML = "Please wait till the chart completes rendering...";
                
            
        
        function FC_Exported(statusObj) 
           _sw.stop();
            time = _sw.duration();
            setTimeout(' document.getElementById("MainContent_Button1").click();', time);

        
    </script>

在上面的代码中,document.getElementById("MainContent_Button1").click(); 函数生成了 ppt。我的问题是我有 3 个 fusioncharts 函数 FC_Exported 执行了 3 次。所以我收到了 3 次 ppt 提示。我希望它只发生 1 次。另外我认为 ppt 代码的位置不能更改,因为我正在使用 时间参数。有人可以指导我吗?等待您的回复。谢谢。

注意:计时器的停止功能不能放在其他任何地方,因为我想要生成和保存图像的总时间。

【问题讨论】:

【参考方案1】:

最近我使用 fusioncharts 导出为 ppt。过程很简单,如下:

- Capture image from the client side 
- Save Image at server side
- Use Apache POI to create a slideshow 
- Add stored image in slide as :

          // get server context
             ServletContext context = request.getServletContext();  

         // get image stored file path       
             String []imagefilename=filename.split("/ExportedImages");

         // get image filename 
             String filename = context.getRealPath("/ExportedImages"+imagefilename[1]); 


         // Create Slide
         Slide slide1 = slideShow.createSlide();
          try 
              int idx=slideShow.addPicture(new File(filename), org.apache.poi.hslf.model.Picture.JPEG);

              org.apache.poi.hslf.model.Picture pict = new org.apache.poi.hslf.model.Picture(idx);

              //set image position in the slide
              pict.setAnchor(new java.awt.Rectangle(100, 100, 300, 200));

              slide1.addShape(pict);


         catch (IOException e1) 

            e1.printStackTrace();
        


      - Then Download file 

【讨论】:

【参考方案2】:

您可以尝试使用来自 FusionCharts 的oomfo。它适用于 PowerPoint '03 及更高版本。

【讨论】:

嗨..我一直在寻找更多涉及 javascript 的解决方案。但无论如何我们终于设法使用 c# 版本的代码解决了这个问题。无论如何感谢您的回复。

以上是关于将融合图导出到 ppt的主要内容,如果未能解决你的问题,请参考以下文章

将 PPT 保存为 PNG,无需“导出”VBA

powerbi导出动不了

如何将别人ppt中的Flash动画导出

如何把ppt中的flash导出来

POI之PPT导出最简单实例

java导出ppt太慢