Crystal reports 水晶报表中的MS图表

Crystal reports 水晶报表中的MS图表,crystal-reports,charts,mschart,Crystal Reports,Charts,Mschart,是否可以将ms chart asp.net控件的图表图像包含在以适合打印的分辨率呈现的crystral报表中 我的网站上显示了一个mschart,我希望在我的crystal report中显示相同的图表,以便客户可以打印它。我不想使用crystal reports图表。我正在做类似的事情-使用ms chart创建图表,将其与其他html标记(数据表)一起呈现在网页上,然后用户可以导出为PDF或Excel。为了做到这一点,并保留相同的图表图像,我的代码将图表保存在服务器上作为.png图像,然后如果

是否可以将ms chart asp.net控件的图表图像包含在以适合打印的分辨率呈现的crystral报表中


我的网站上显示了一个mschart,我希望在我的crystal report中显示相同的图表,以便客户可以打印它。我不想使用crystal reports图表。

我正在做类似的事情-使用ms chart创建图表,将其与其他html标记(数据表)一起呈现在网页上,然后用户可以导出为PDF或Excel。为了做到这一点,并保留相同的图表图像,我的代码将图表保存在服务器上作为.png图像,然后如果用户想要导出页面,我的代码将调用导出文档(pdf或excel)中的该图像,并用标记显示它

这是将图表保存到服务器的相关代码:

// save the finished image to a folder, so the PDF can retrive it later
v_chart.SaveImage(context.Server.MapPath(String.Concat(@"charts\chartimage_",      v_runtimeReportKey, "_", v_chartID, ".png")));
// output the finished image to the browser
context.Response.Clear();
context.Response.ContentType = "image/png";
// following works fine with IIS 7 (Windows 7, or 2008 Server)
//v_chart.SaveImage(context.Response.OutputStream, ChartImageFormat.Png);
// must use the following for IIS 6 (Windows 2003 Server)
using(MemoryStream v_stream = new MemoryStream()){
   v_chart.SaveImage(v_stream, ChartImageFormat.Png);
   v_stream.WriteTo(context.Response.OutputStream);
}

我正在做类似的事情——用ms chart创建一个图表,在网页上呈现它,以及其他html标记(数据表),然后用户可以导出到PDF或Excel。为了做到这一点,并保留相同的图表图像,我的代码将图表保存在服务器上作为.png图像,然后如果用户想要导出页面,我的代码将调用导出文档(pdf或excel)中的该图像,并用标记显示它

这是将图表保存到服务器的相关代码:

// save the finished image to a folder, so the PDF can retrive it later
v_chart.SaveImage(context.Server.MapPath(String.Concat(@"charts\chartimage_",      v_runtimeReportKey, "_", v_chartID, ".png")));
// output the finished image to the browser
context.Response.Clear();
context.Response.ContentType = "image/png";
// following works fine with IIS 7 (Windows 7, or 2008 Server)
//v_chart.SaveImage(context.Response.OutputStream, ChartImageFormat.Png);
// must use the following for IIS 6 (Windows 2003 Server)
using(MemoryStream v_stream = new MemoryStream()){
   v_chart.SaveImage(v_stream, ChartImageFormat.Png);
   v_stream.WriteTo(context.Response.OutputStream);
}

当您将MS图表保存为图像时,它总是以96dpi显示,如果您想打印它,这并不是很好-应该更像300dpi

一个简单的解决方法是在调用
SaveImage()
之前临时增加图表大小


这将导致图像的大小是原始图像的3倍。当缩小到其大小的1/3时,它将具有96 x 3=288dpi,这在打印时看起来更好。

当您将MS图表保存为图像时,它总是以96dpi显示,如果您想打印它,这并不是很好-应该更像300dpi

一个简单的解决方法是在调用
SaveImage()
之前临时增加图表大小


这将导致图像的大小是原始图像的3倍。缩小到1/3大小时,它将具有96 x 3=288dpi,打印时看起来更好。

我正在考虑做类似的事情,谢谢。你知道印刷品的质量吗,或者有没有办法把png保存成更高的分辨率?关于IIS的骇客。当我使用MSCharts作为处理程序时,它对我起了作用。我正在考虑做类似的事情,谢谢。你知道印刷品的质量吗,或者有没有办法把png保存成更高的分辨率?关于IIS的骇客。当我使用MSCharts作为处理程序时,它对我很有效。如果我理解正确,它实际上增加了图像的dpi?不完全是。dpi(每英寸点数)在代码输出的图像中保持不变-图像仅大3倍。如果我理解正确,它实际上会增加图像的dpi?不完全是。dpi(每英寸点数)在代码输出的图像中保持不变-图像仅大3倍。