0

我正在使用 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 上显示数据。

网格视图

4

1 回答 1

0
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();  

    }
于 2013-03-15T08:59:23.040 回答