2012-06-01 72 views
0

我正在使用2個gridviews。第一個啓用了分頁,每頁允許的行數爲1。第二個gridview將第一行的值作爲時間範圍,每次我在gridview1上更改頁面時,第二個GV會根據GV1的值自動更改其內容。使用iTextSharp將2個gridviews合併到一個生成的PDF文件中

之前,我能夠使用iTextSharp生成PDF文件,只有一個gridview並且未啓用分頁。但是現在我首先在分頁啓用的時候掙扎,然後把兩個gridviews合併成一個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(); 

這是GridView的顯示方式,你可以看到在GV1的工作價值「薩利達」和「Llegada」作爲一個時間範圍內對GV2顯示數據。

Gridviews

+0

您需要發佈一些代碼,別人幫你。也指出哪部分代碼沒有按預期工作。 –

回答

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

    } 
+0

考慮添加更多的解釋,而不是代碼。 – ChiefTwoPencils

相關問題