【问题标题】:Merging 2 gridviews into one generated PDF file using iTextSharp使用 iTextSharp 将 2 个网格视图合并到一个生成的 PDF 文件中
【发布时间】:2012-06-01 18:26:15
【问题描述】:

我正在使用 2 个网格视图。第一个启用了分页,每页允许的行数为一。第二个 gridview 将第一行的值作为时间范围,每次我在 gridview1 上更改页面时,第二个 GV 都会根据 GV1 的值自动更改其内容。

以前,我能够使用 iTextSharp 生成 PDF 文件,只有一个 gridview 并且没有启用分页。但是现在我首先在启用分页时遇到了困难,其次是在将两个网格视图合并到一个 pdf 文件中。

有人知道我该怎么做吗?

提前致谢。

编辑:这是我使用 iTextSharp 从 gridview 生成 PDF 文件的代码。

using iTextSharp.text;
using iTextSharp.text.pdf;
using iTextSharp.text.html;
using iTextSharp.text.html.simpleparser;

StringWriter stw = new StringWriter();
HtmlTextWriter htextw = new HtmlTextWriter(stw);
gvReportes.AllowPaging = false;
gvReportes.HeaderRow.Style.Add("font-family", "Arial, Helvetica, sans-serif;");
gvReportes.HeaderRow.Style.Add("font-size", "7.20px");
gvReportes.HeaderRow.Style.Add("color", "#284775");
gvReportes.Style.Add("font-family", "Arial, Helvetica, sans-serif;");
gvReportes.Style.Add("font-size", "6px");
gvReportes.RenderControl(htextw);
Document document = new Document();
string path = "path.pdf";
PdfWriter writer = PdfWriter.GetInstance(document, new FileStream(path, FileMode.Create));
document.Open();
StringReader str = new StringReader(stw.ToString());
HTMLWorker htmlworker = new HTMLWorker(document);
htmlworker.Parse(str);
Response.Write(document);
document.Close();

这就是网格视图的显示方式,您可以看到 GV1 上的值“Salida”和“Llegada”作为时间范围在 GV2 上显示数据。

【问题讨论】:

  • 您需要发布一些代码以供其他人帮助您。还要指出代码的哪一部分没有按预期工作。

标签: asp.net gridview itextsharp


【解决方案1】:
protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Clear(); //this clears the Response of any headers or previous output
        Response.Buffer = true; //ma
        Response.ContentType = "application/pdf";

        Response.AddHeader("content-disposition", "attachment;filename=injoin.pdf");

        Response.Cache.SetCacheability(HttpCacheability.NoCache);

        StringWriter sw = new StringWriter();

        HtmlTextWriter hw = new HtmlTextWriter(sw);

        GridView1.RenderControl(hw);

        StringReader sr = new StringReader(sw.ToString());

        Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);

        HTMLWorker htmlparser = new HTMLWorker(pdfDoc);

        PdfWriter.GetInstance(pdfDoc, Response.OutputStream);

        pdfDoc.Open();

        htmlparser.Parse(sr);

        pdfDoc.Close();

        Response.Write(pdfDoc);

        Response.End();  

    }

【讨论】:

  • 考虑添加更多解释而不是仅代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-17
  • 1970-01-01
  • 2019-10-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-22
相关资源
最近更新 更多