使用C#将面板内容中的所有内容导出为PDF

时间:2013-02-25 21:22:16

标签: c# asp.net

我有一个面板,面板内部有一个gridview和图表(融合图表)。我想要做的是将面板中的所有内容作为图像导出为PDF。到目前为止,我只能导出gridview,图表根本没有出现。如何将面板内容中的所有内容导出为图像为pdf格式?请。救命。这是我的代码: 我正在使用ITEXT Sharp

protected void btnExport_Click(object sender, EventArgs e)
{
    Response.ContentType = "application/pdf";
    Response.AddHeader("content-disposition", "attachment;filename=Panel.pdf");
    Response.Cache.SetCacheability(HttpCacheability.NoCache);
    StringWriter sw = new StringWriter();
    HtmlTextWriter hw = new HtmlTextWriter(sw);
    pnlPerson.RenderControl(hw);
    StringReader sr = new StringReader(sw.ToString());
    Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0f);
    HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
    PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
    pdfDoc.Open();
    htmlparser.Parse(sr);
    pdfDoc.Close();
    Response.Write(pdfDoc);
    Response.End();

}

2 个答案:

答案 0 :(得分:0)

尝试使用<Control>.DrawToBitmap将控件绘制到位图,然后将该位图绘制到PDF中

绘制到位图会将控件绘制到位图中 - 将其视为点击打印屏幕。

所以,在这种情况下,

Bitmap bm = new Bitmap(mygraph.Bounds.Width, mygraph.Bounds.Height);
mygraph.DrawToBitmap(new System.Drawing.Bitmap(),new System.Drawing.Rectangle(0,0,mygraph.Bounds.Width,mygraph.Bounds.Height)
pdfwriterthingy.writebitmap(bm);

我的pdf导出器有能力编写位图吗?

答案 1 :(得分:0)

Fusion图表是我在浏览器上呈现的Javascript。在这种情况下,将其HTML呈现为PDF并不会特别成功。

Fusion Charts提供specific server-side handlers for JPG and PDF rendering,您需要使用它们。

以下是Fusion Charts网站提供的更多资源: