-2

我有一个面板,面板内有一个网格视图和图表(融合图表)。我想要做的是将面板中的所有内容作为图像导出为 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();

}
4

2 回答 2

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 导出器能够编写位图的能力大大提高?

于 2013-02-25T21:36:44.017 回答
0

据我所知,融合图表是在浏览器上呈现的 Javascript。在这种情况下,将其 HTML“渲染”为 PDF 不会特别成功。

Fusion Charts为 JPG 和 PDF 渲染提供特定的服务器端处理程序,您需要使用这些处理程序。

以下是来自 Fusion Charts 网站的更多资源:

于 2013-02-25T21:37:55.630 回答