It’s been a nightmare if you application work fine at your development end and it’s unable to work under production environment; just due to do ACCESS LEVEL ISSUES.
I have to create pdf.
1. Microsoft reporting was creating a trust level issue so it was rejected.
2. Then I opt for itextsharp
Again ran into trust level problem.
Then I download the open source code from the itextsharp website and added
using System.Security;
[assembly: AllowPartiallyTrustedCallers()] attribute inside AssemblyInfo.cs
Compiled the file and uploaded it to server.
Got a function from internet which I modified according to mine needs
protected void btnExportPDF_Click(object sender, EventArgs e)
{
Response.ContentType = "application/pdf";
Response.AddHeader("content-disposition", "attachment;filename=BranchDataExport1.pdf");
Response.Cache.SetCacheability(HttpCacheability.NoCache);
StringWriter sw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(sw);
// I need to get the data from HTML table so I used it’s rendercontrol.
tblMain.RenderControl(hw);
StringReader sr = new StringReader(sw.ToString());
Document pdfDoc = new Document(PageSize.A4, 50f, 50f, 50f, 50f);
HTMLWorker htmlparser = new HTMLWorker(pdfDoc);
PdfWriter.GetInstance(pdfDoc, Response.OutputStream);
pdfDoc.Open();
try
{
//Create a footer that will display page number
HeaderFooter footer = new HeaderFooter(new Phrase("List -: " + DateTime.Now.Day.ToString() + "-" + DateTime.Now.Month.ToString() + "-" + DateTime.Now.Year.ToString(), new Font(1, 10, 1, Color.BLACK)), false);
pdfDoc.Footer = footer;
//Parse Html
htmlparser.Parse(sr);
}
catch (Exception ex)
{
//Display parser errors in PDF.
//Parser errors will also be wisible in Debug.Output window in VS
Paragraph paragraph = new Paragraph("Error! " + ex.Source + Environment.NewLine + ex.Message + Environment.NewLine + ex.StackTrace);
paragraph.SetAlignment("center");
Chunk text = paragraph.Chunks[0] as Chunk;
if (text != null)
{
text.Font.Color = Color.RED;
}
pdfDoc.Add(paragraph);
}
finally
{
pdfDoc.Close();
}
Response.Write(pdfDoc);
Response.End();
}
And this generate pdf for. Also I ran into different sort of problem which I didn’t mention like
Web.Permission…. That was due to the inclusion of file.
Some pdf page related error etc etc.
This whole took mine so much time, so I want you guys don’t waste time on this issue. BEST OF LUCK
No comments:
Post a Comment