我有使用iTextSharp.dll打印普通饼图的代码(pdf生成lib)
使用的名称空间:
using iTextSharp.text;
using iTextSharp.text.pdf;
using System.IO;
using System.Web.UI.DataVisualization.Charting;
代码:
Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
using (MemoryStream stream = new MemoryStream())
{
PieChart1.SaveImage(stream, ChartImageFormat.Png); //error line
iTextSharp.text.Image chartImage = iTextSharp.text.Image.GetInstance(stream.GetBuffer());
chartImage.ScalePercent(75f);
pdfDoc.Add(chartImage);
pdfDoc.Close();
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=Chart.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Write(pdfDoc);
Response.End();
}
但是这段代码不适用于ajax饼图,它显示错误:
错误1'AjaxControlToolkit.PieChart'不包含'SaveImage'的定义,并且没有可以找到接受类型'AjaxControlToolkit.PieChart'的第一个参数的扩展方法'SaveImage'(你是否缺少using指令或程序集参考?)
还有其他方式像从javascript打印饼图的div? 或任何其他代码样本/参考?
答案 0 :(得分:-1)
如果你想从javascript执行操作。我建议你使用Highcharts它最适合所有类型的图表,它还提供内置打印和下载为图像或PDF。 http://www.highcharts.com/demo/pie-basic 检查此链接并演示它是用户友好且重量轻。