首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我想使用telerik控件将radchart导出到pdf am中。

我想使用telerik控件将radchart导出到pdf am中。
EN

Stack Overflow用户
提问于 2013-03-20 14:29:00
回答 1查看 1.2K关注 0票数 0

我正在使用此代码获得此图表,我想将此图表导出为pdf。

代码语言:javascript
复制
 private void InitializeGraph(DataTable poDt)
 {
    Telerik.Charting.ChartSeries chartseries = new Telerik.Charting.ChartSeries();
    try
    {

      chartseries.Type = Telerik.Charting.ChartSeriesType.Bar;
      Telerik.Charting.ChartSeriesItem csItem;
      RadChart1.PlotArea.XAxis.AutoScale = true;

      RadChart1.PlotArea.XAxis.AddRange(1, poDt.Rows.Count, 1);
      RadChart1.PlotArea.XAxis.AutoShrink = true;

      for (int iRow = 0; iRow < poDt.Rows.Count; iRow++)
      {
        chartseries = new Telerik.Charting.ChartSeries();
        chartseries.Type = Telerik.Charting.ChartSeriesType.Bar;
        chartseries.Name = poDt.Rows[iRow]["Name"].ToString().Trim();

        csItem = new Telerik.Charting.ChartSeriesItem();
        csItem.Name = poDt.Rows[iRow]["Name"].ToString();
        csItem.Label.TextBlock.Text = poDt.Rows[iRow]["Value"].ToString();//+ "(" + poDt.Rows[iRow]["Percentage"].ToString() + "%)";
        RadChart1.PlotArea.XAxis.Appearance.TextAppearance.AutoTextWrap = Telerik.Charting.Styles.AutoTextWrap.True;

        csItem.YValue = Int32.Parse(poDt.Rows[iRow]["Value"].ToString());

        RadChart1.PlotArea.XAxis.AutoShrink = false;
        chartseries.AddItem(csItem);
        RadChart1.Series.Add(chartseries);
      }


        RadChart1.PlotArea.XAxis.AutoShrink = true;

        RadChart1.PlotArea.Appearance.Border.Visible = false;
        RadChart1.Appearance.Border.Visible = false;
        RadChart1.PlotArea.YAxis.IsLogarithmic = true;
        RadChart1.PlotArea.YAxis.AutoScale = true;
        RadChart1.PlotArea.YAxis.Appearance.ValueFormat = Telerik.Charting.Styles.ChartValueFormat.Number;
        RadChart1.Appearance.BarWidthPercent = 50;

        RadChart1.Chart.Appearance.FillStyle.MainColor = System.Drawing.Color.Red;
        RadChart1.Chart.Appearance.FillStyle.MainColor = System.Drawing.Color.Transparent;
        RadChart1.Legend.Appearance.FillStyle.MainColor = System.Drawing.Color.Transparent;

        }
        catch (Exception Ex)
        {
           //throw;
        }
        finally
        {
          poDt.Clear();
          poDt = null;
          chartseries = null;
        }
   }
EN

回答 1

Stack Overflow用户

发布于 2013-03-21 17:39:58

你好,我得到了这个问题的答案,我用了它,它工作得很好。

无效ExportToPdf() {

代码语言:javascript
复制
       DataTable poDt = new DataTable();
       InitializeGraph(poDt);

       RadChart1.Save(Server.MapPath("~/images/Chart.png"), System.Drawing.Imaging.ImageFormat.Png);
        Document document = new Document(PageSize.LETTER, 72, 72, 82, 72);
        MemoryStream msReport = new MemoryStream();

        try
        {

            PdfWriter writer = PdfWriter.GetInstance(document, msReport);
            document.AddAuthor("Test");
            document.AddSubject("Export to PDF");
            document.Open();
            Chunk c = new Chunk("Export chart to PDF", FontFactory.GetFont("VERDANA", 15));
            Paragraph p = new Paragraph();
            p.Alignment = Element.ALIGN_CENTER;
            iTextSharp.text.Image hImage;
            hImage = iTextSharp.text.Image.GetInstance(MapPath("~/images/Chart.png"));

            float NewWidth = 500;
            float MaxHeight = 400;

            if (hImage.Width <= NewWidth) { NewWidth = hImage.Width; } float NewHeight = hImage.Height * NewWidth / hImage.Width; if (NewHeight > MaxHeight)
            {
                NewWidth = hImage.Width * MaxHeight / hImage.Height;
                NewHeight = MaxHeight;
            }

            float ratio = hImage.Width / hImage.Height;
            hImage.ScaleAbsolute(NewWidth, NewHeight);
            document.Add(p);
            document.Add(hImage);
            document.Close();

            Response.AddHeader("Content-type", "application/pdf");
            Response.AddHeader("Content-Disposition", "attachment; filename=chart.pdf");
            Response.OutputStream.Write(msReport.GetBuffer(), 0, msReport.GetBuffer().Length);

        }
        catch (System.Threading.ThreadAbortException ex)
        {
            throw new Exception("Error occured: " + ex);
        }

    }

protected void Export_To_Pdf_Click(object sender,EventArgs e) { ExportToPdf();

代码语言:javascript
复制
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15516762

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档