0
這是我的正在工作的代碼。由於我不熟悉itextsharp
,因此我需要一些幫助來進行這種迭代。在c#中使用單個過程打印多個gridviews
當我點擊Print
按鈕時,它會運行MySelectProcedure1
並將表結果下載到名爲DataTable
的PDF中。
protected void btnPrint_Click(object sender, EventArgs e)
{
Procedure("MySelectProcedure1");.
Procedure("MySelectProcedure2");
}
protected void Procedure(string Proc)
{
Connection con = new Connection();
SqlDataAdapter da;
DataTable dt;
con.con = new SqlConnection(con.str);
con.cmd.CommandText = Proc;
con.cmd.CommandType = CommandType.StoredProcedure;
da = new SqlDataAdapter();
da.SelectCommand = con.cmd;
dt = new DataTable();
try
{
con.con.Open();
da.Fill(dt);
print(dt);
}
catch (Exception ex)
{
}
finally
{
con.con.Close();
con.con.Dispose();
}
}
protected void print (DataTable dt)
{
GridView GridView1 = new GridView();
GridView1.AllowPaging = false;
GridView1.DataSource = dt;
GridView1.DataBind();
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=DataTable.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();
}
}
但是,它不在同一PDF中打印MySelectProcedure1
。
這就是我想要的:
- 打開PDF文檔。的
MySelectProcedure1
- 打印幾行
MySelectProcedure2
- 打印結果
- 打印了幾行
- 打印結果關閉並保存PDF文檔
我該怎麼辦呢?
我希望有一個單一的PDF包含5個不同的表。我如何重複使用我的'print to pdf'功能? – divinediu
我編輯了兩個數據表的代碼。你可以添加更多的表格並追加Stringreader – aydnahmet
美麗。謝謝! – divinediu