private void GeneratePDF(string path, string fileName, bool download, string text)
{
var document = new Document();
try
{
if (download)
{
PdfWriter.GetInstance(document, Response.OutputStream);
}
else
{
PdfWriter.GetInstance(document, new FileStream(path + fileName, FileMode.Create));
}
// generates the grid first
StringBuilder strB = new StringBuilder();
document.Open();
if (text.Length.Equals(0)) // export the text
{
gvTransaction.DataBind();
using (StringWriter sWriter = new StringWriter(strB))
{
using (HtmlTextWriter htWriter = new HtmlTextWriter(sWriter))
{
gvTransaction.RenderControl(htWriter);
}
}
}
else // export the grid
{
strB.Append(text);
}
// now read the Grid html one by one and add into the document object
using (TextReader sReader = new StringReader(strB.ToString()))
{
List<IElement> list = HTMLWorker.ParseToList(sReader, new StyleSheet());
foreach (IElement elm in list)
{
document.Add(elm);
}
}
}
catch (Exception ee)
{
lblMessage.Text = ee.ToString();
}
finally
{
document.Close();
}
}
public override void VerifyRenderingInServerForm(Control control)
{
}
protected void GeneratePDFAndDownload(object sender, EventArgs e)
{
string fileName = "pdfDocument" + DateTime.Now.Ticks + ".pdf";
GeneratePDF("", fileName, true, "");
Response.Clear();
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment; filename=" + fileName);
Response.Flush();
Response.End();
}
I got the following code but when i run, it says
the document has no pages
Can someone help me as soon as possible? :(