i need to generate an invoice in pdf , here is my code, in this i'm genating one invoice format pdf file but i need to generate two tables of data in different pages of single pdf file, how can i do that
string EsNo = txtesno.Text.Trim();
string DcNo = _delcno.ToString();
string person = ddlsp.SelectedItem.Text;
string area = txtarea.Text.Trim();
string IssuedStock = string.Empty;
string Note = "".ToString();
Note.ToLower();
EsugumObject objco = new EsugumObject();
objco.BranchCode = _CompId.ToString();
objco.DCNo = _delcno.ToString();
//objco.EsugumNo = EsNo.ToString();
objco.SalesCode = ddlsp.SelectedItem.Value;
// string date = DateTime.Parse(_uploaddate.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture);
objco.DcDate = _uploaddate.ToString();
EsugumLayer objcl = new EsugumLayer();
DataTable dt = objcl.DisplayDc(objco);
var sum = dt.AsEnumerable().Sum(x => Convert.ToInt32(x["IssuedStock"]));
_tsum = dt.AsEnumerable().Sum(x => Convert.ToInt32(x["IssedValue"]));
ShowWords();
dt.Columns["PName"].ColumnName = "Product";
dt.Columns["Pack"].ColumnName = "Pack";
dt.Columns["Price"].ColumnName = "Price";
dt.Columns["IssuedStock"].ColumnName = "IssuedStock";
dt.Columns["IssedValue"].ColumnName = "IssuedAmount";
//HSN and M's DC Generation
//DataTable Mdt = objcl.DisplayHSNDc(objco);
//Mdt.Columns["HSNCode"].ColumnName = "HSN Code";
//Mdt.Columns["qty"].ColumnName = "Qty";
//Mdt.Columns["msval"].ColumnName = "Total Amount";
using (StringWriter sw = new StringWriter())
{
using (HtmlTextWriter hw = new HtmlTextWriter(sw))
{
StringBuilder sb = new StringBuilder();
//Generate Invoice (Bill) Header.
sb.Append("<table width='100%' cellspacing='0' cellpadding='2' border = '1'>");
sb.Append("<tr><td align='center' style='background-color: #18B5F0;color:white'; colspan = '2'><b>Delivery Challan</b></td></tr>");
sb.Append("</table>");
sb.Append("<table width='100%' border = '1' >");
sb.Append("<tr align='left'>");
sb.Append("<td>");
sb.Append("<p style='font-size:15px;font-weight:bold;margin-left:2cm';>");
sb.Append(_compName);
sb.Append("</p>");
sb.Append("<p style='font-size:10px;margin-left:2cm';>");
sb.Append(_dealer);
sb.Append("</p>");
sb.Append("</br>");
sb.Append("<p style='font-size:10px;'>");
sb.Append(_address);
sb.Append("</p>");
sb.Append("<p style='font-size:10px;'>");
sb.Append(_area);
sb.Append(", ");
sb.Append(_city);
sb.Append("-");
sb.Append(_pincode);
sb.Append("</p>");
sb.Append("</br>");
sb.Append("<p style='font-size:10px;'>");
sb.Append("<b> Ph: </b>");
sb.Append(_cno);
sb.Append("<b> Email: </b>");
sb.Append(_email);
sb.Append("</p>");
//sb.Append("<tr>");
sb.Append("<td align='center'>");
sb.Append("<p style='font-size:10px;text-align:left;'>");
sb.Append("<b>Tin No: </b>");
sb.Append(_tinno);
sb.Append("</p>");
sb.Append("<p style='font-size:10px;text-align:left;'>");
sb.Append("<b>GST No: </b>");
sb.Append(_gstno);
sb.Append("</p>");
sb.Append(" </td>");
sb.Append("</tr>");
sb.Append("<tr><td colspan = '2'></td></tr>");
sb.Append("<tr><td>");
sb.Append("<p style='font-size:10px;'>");
sb.Append("<b>DC No: </b>");
sb.Append(DcNo);
sb.Append("</p>");
sb.Append("<p style='font-size:10px;'>");
sb.Append("<b>Qty: </b>");
sb.Append(sum);
sb.Append("</p>");
sb.Append("<p style='font-size:10px;'>");
sb.Append("<b>Amount: </b>");
sb.Append(dt.Compute("sum(IssuedAmount)", ""));
sb.Append("</p>");
sb.Append("<p style='font-size:10px;'>");
sb.Append("<b>Esugam No: </b>");
sb.Append(EsNo);
sb.Append("</p>");
sb.Append("</td><td align = 'center'>");
sb.Append("<p style='font-size:10px;text-align:left;'>");
sb.Append("<b>Date: </b>");
sb.Append(DateTime.UtcNow.AddHours(5.5).ToString("dd-MM-yyyy HH:mm tt", System.Globalization.CultureInfo.InvariantCulture));
sb.Append("</p>");
sb.Append("<p style='font-size:10px;text-align:left;'>");
sb.Append("<b>To: </b>");
sb.Append(person);
sb.Append("</p>");
sb.Append("<p style='font-size:10px;text-align:left;'>");
sb.Append("<b>Area: </b>");
sb.Append(_city);
sb.Append("</p>");
sb.Append(" </td></tr>");
sb.Append("<tr><td align='left' colspan = '2'><p style='font-size:8px;'><b>Note: </b> Stock issued to line sales and accounted after returning same day or next day.</p></td></tr>");
sb.Append("</table>");
//sb.Append("<br />");
//Generate Invoice (Bill) Items Grid.
sb.Append("<table border = '1' style ='font-size:12px;'>");
sb.Append("<tr>");
foreach (DataColumn column in dt.Columns)
{
sb.Append("<th style = 'background-color: #D20B0C;color:#ffffff;font-size:12px;'>");
sb.Append("<p style='font-size:12px;'>");
sb.Append(column.ColumnName);
sb.Append("</p>");
sb.Append("</th>");
}
sb.Append("</tr>");
foreach (DataRow row in dt.Rows)
{
sb.Append("<tr>");
foreach (DataColumn column in dt.Columns)
{
sb.Append("<td>");
sb.Append("<p style='font-size:12px;'>");
sb.Append(row[column]);
sb.Append("</p>");
sb.Append("</td>");
}
sb.Append("</tr>");
}
sb.Append("<tr><td align = 'right' colspan = '");
sb.Append(dt.Columns.Count - 2);
sb.Append("'>Total</td>");
sb.Append("<td>");
sb.Append(sum);
sb.Append("</td>");
sb.Append("<td>");
sb.Append(dt.Compute("sum(IssuedAmount)", ""));
sb.Append("</td>");
sb.Append("</p></tr></table>");
//Footer of DC
sb.Append("<table width='100%' >");
sb.Append("<tr><td></td></tr>");
sb.Append("<tr><td><p style='font-size:8px;'><b>In Words: </b>");
sb.Append(_words);
sb.Append("</td>");
sb.Append("</tr></table>");
sb.Append("<table width='100%'>");
sb.Append("</td><td align = 'right' colspan = '2'><p style='font-size:10px;text-align:right'><b>for ");
sb.Append(_compName);
sb.Append("</b></p>");
sb.Append("</td>");
sb.Append("</tr>");
sb.Append("<br/>");
sb.Append("<br/>");
sb.Append("<br/>");
sb.Append("</td><td align = 'right' colspan = '2'><p style='font-size:8px;text-align:right'><b>INCHARGE</b></p></td></tr>");
sb.Append("</table>");
//Export HTML String as PDF.
StringReader sr = new StringReader(sb.ToString());
iTextSharp.text.Document pdfDoc = new iTextSharp.text.Document(iTextSharp.text.PageSize.A4, 10f, 10f, 10f, 0f);
iTextSharp.text.html.simpleparser.HTMLWorker htmlparser = new iTextSharp.text.html.simpleparser.HTMLWorker(pdfDoc);
PdfWriter writer = PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
htmlparser.Parse(sr);
pdfDoc.Close();
Response.ContentType = "application/pdf";
//Response.AddHeader("content-disposition", "attachment;filename=DC" + DcNo + ".pdf");
Response.AddHeader("content-disposition", "attachment;filename=DcNo" + DcNo + "_Name:" + person + ".pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Write(pdfDoc);
Response.End();
}
}
ScriptManager.RegisterStartupScript(this, this.GetType(), "Message", "alert('DC Generated for the Sales Person : " + ddlsp.SelectedItem.Text + " ');", true);
}