如何将 Telerik RadHtmlChart 放入 PowerPoint 演示文稿
How to get Telerik RadHtmlChart into PowerPoint presentation
我正在使用 VB Net 和 telerik 控件构建 Web 应用程序。我的屏幕上有几个 ColumnChart RadHtmlCharts,我需要将它们放入代码隐藏文件中的 PowerPoint 演示文稿中。
我目前的方法是采用现有的 .PPTX 文件并逐步执行它,在需要时替换文本等等。现在我只需要将图表放入演示文稿中。
这是我通过幻灯片制作的循环。
' generate
For Each slide As SlidePart In pCopy.PresentationPart.SlideParts
' THIS IS WHERE THE CHARTS NEED TO BE ADDED TO THE SLIDE
Next
注意:我已经编写了一个 returns 图表的函数,我现在缺少的只是将其放入演示文稿所需的步骤。
这是我包含的 'Imports'...
Imports Telerik.Web.UI
Imports System.Data
Imports System.IO
Imports System.Data.SqlClient
Imports Microsoft.Office.Interop
Imports Microsoft.Office.Interop.PowerPoint
Imports DocumentFormat.OpenXml
Imports DocumentFormat.OpenXml.Packaging
Imports DocumentFormat.OpenXml.Presentation
任何帮助将不胜感激
假设您知道如何将图像放入 pptx 文件(我自己不知道),您 "only" 需要从 HtmlChart 中获取图像。有几种方法:
从以下导出控件的代码库开始:http://www.telerik.com/support/code-library/exporting-radhtmlchart-to-png-and-pdf使用 ClientExportManager 控件非常简单。
这应该会为您提供服务器上图表的图像,您可以在现有代码中使用它
您可以考虑的其他想法:
如果你想嵌入多个图表,你可以使用服务先在你的服务器上获取许多图像:http://docs.telerik.com/devtools/aspnet-ajax/controls/clientexportmanager/how-to/save-exported-files
PhantomJS 等工具可以让您 运行 服务器上的浏览器生成图表,您可以导出和嵌入这些图表。否则,您将需要最终用户操作来加载包含图表的页面
正如 rdmptn 所建议的那样,我先将图表保存为图像,然后使用模板将图像添加到幻灯片中。
所以我采取的基本步骤是...
1) 创建带有持有图像的 Powerpoint 演示文稿(通过 'Selection Pane' 命名图像)
2) 在 Code Behind 循环遍历所有幻灯片部分,检查部分名称(图像)是否是我们要查找的图表
3) 使用以下代码将保存图像替换为图表的生成图像(GenerateChartImage() returns 生成图像的文件路径)
Using imgStream As FileStream = New FileStream(GenerateChartImage(), FileMode.Open)
imagePart.FeedData(imgStream)
End Using
这是我将图表保存为图像的方法(其中生成图表只是以编程方式构建图表...
Dim Chart As New RadChart()
Dim FilePath As String = "~/Folder/" & FileName & ".jpg"
Dim Path As String = Server.MapPath(FilePath)
Chart = GenerateChart(Index)
' save the image and return the filepath
Chart.Save(Path, System.Drawing.Imaging.ImageFormat.Jpeg)
return Path
我希望这对其他人有所帮助,因为我理解这个主题可能会非常混乱!
我正在使用 VB Net 和 telerik 控件构建 Web 应用程序。我的屏幕上有几个 ColumnChart RadHtmlCharts,我需要将它们放入代码隐藏文件中的 PowerPoint 演示文稿中。
我目前的方法是采用现有的 .PPTX 文件并逐步执行它,在需要时替换文本等等。现在我只需要将图表放入演示文稿中。
这是我通过幻灯片制作的循环。
' generate
For Each slide As SlidePart In pCopy.PresentationPart.SlideParts
' THIS IS WHERE THE CHARTS NEED TO BE ADDED TO THE SLIDE
Next
注意:我已经编写了一个 returns 图表的函数,我现在缺少的只是将其放入演示文稿所需的步骤。
这是我包含的 'Imports'...
Imports Telerik.Web.UI
Imports System.Data
Imports System.IO
Imports System.Data.SqlClient
Imports Microsoft.Office.Interop
Imports Microsoft.Office.Interop.PowerPoint
Imports DocumentFormat.OpenXml
Imports DocumentFormat.OpenXml.Packaging
Imports DocumentFormat.OpenXml.Presentation
任何帮助将不胜感激
假设您知道如何将图像放入 pptx 文件(我自己不知道),您 "only" 需要从 HtmlChart 中获取图像。有几种方法:
从以下导出控件的代码库开始:http://www.telerik.com/support/code-library/exporting-radhtmlchart-to-png-and-pdf使用 ClientExportManager 控件非常简单。
这应该会为您提供服务器上图表的图像,您可以在现有代码中使用它
您可以考虑的其他想法:
如果你想嵌入多个图表,你可以使用服务先在你的服务器上获取许多图像:http://docs.telerik.com/devtools/aspnet-ajax/controls/clientexportmanager/how-to/save-exported-files
PhantomJS 等工具可以让您 运行 服务器上的浏览器生成图表,您可以导出和嵌入这些图表。否则,您将需要最终用户操作来加载包含图表的页面
正如 rdmptn 所建议的那样,我先将图表保存为图像,然后使用模板将图像添加到幻灯片中。
所以我采取的基本步骤是...
1) 创建带有持有图像的 Powerpoint 演示文稿(通过 'Selection Pane' 命名图像)
2) 在 Code Behind 循环遍历所有幻灯片部分,检查部分名称(图像)是否是我们要查找的图表
3) 使用以下代码将保存图像替换为图表的生成图像(GenerateChartImage() returns 生成图像的文件路径)
Using imgStream As FileStream = New FileStream(GenerateChartImage(), FileMode.Open)
imagePart.FeedData(imgStream)
End Using
这是我将图表保存为图像的方法(其中生成图表只是以编程方式构建图表...
Dim Chart As New RadChart()
Dim FilePath As String = "~/Folder/" & FileName & ".jpg"
Dim Path As String = Server.MapPath(FilePath)
Chart = GenerateChart(Index)
' save the image and return the filepath
Chart.Save(Path, System.Drawing.Imaging.ImageFormat.Jpeg)
return Path
我希望这对其他人有所帮助,因为我理解这个主题可能会非常混乱!