2012-09-23 6 views
0

J'ai un formulaire ASPX dans lequel l'utilisateur prend un sondage et l'enquête est enregistrée dans la base de données. Après l'enregistrement dans la base de données, les réponses à l'enquête données par l'utilisateur sont affichées afin que l'utilisateur puisse enregistrer la réponse en format pdf.iTextSharp avec des caractères spéciaux

C'est la possibilité d'enregistrer en format pdf

//Save as PDF 
protected void SaveAsPDF_Click(object sender, EventArgs e) 
{ 
    Random nRandom = new Random(DateTime.Now.Second); 
    string strFileName = nRandom.Next().ToString() + ".pdf"; 
    string target = Server.MapPath(System.Configuration.ConfigurationManager.AppSettings["NewResponsePDF"].ToString() + strFileName); 

    string filepath = target; 
    string filename = Path.GetFileName(filepath); 

    Response.Clear(); 
    Response.ContentType = "application/pdf"; 
    Response.AddHeader("content-disposition", "attachment;filename=" + filename); 

    Response.Cache.SetCacheability(HttpCacheability.NoCache); 
    StringWriter sw = new StringWriter(); 
    HtmlTextWriter hw = new HtmlTextWriter(sw); 
    this.Page.Form.RenderControl(hw); 
    StringReader sr = new StringReader(sw.ToString()); 
    Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0f); 
    HTMLWorker htmlparser = new HTMLWorker(pdfDoc); 
    PdfWriter.GetInstance(pdfDoc, Response.OutputStream); 
    pdfDoc.Open(); 
    htmlparser.Parse(sr); 
    pdfDoc.Close(); 
    Response.Write(pdfDoc); 
    Response.End(); 
} 

Il fonctionne très bien et tout va bien. Le formulaire comporte des zones de texte. L'utilisateur peut entrer du texte dans la zone de texte. Parfois, l'utilisateur entre des symboles mathématiques comme <,>, =. Pour vous assurer que la valeur de la zone de texte est enregistrée dans la base de données, le ValidateRequest="false" suivant a été effectué dans le fichier ASPX. Mais, SaveAsPDF renvoie une erreur car il est incapable d'analyser ces symboles.

Je suis sûr qu'il est la plupart du temps ces symboles spéciaux l'origine du problème avec le

htmlparser.Parse(sr) méthode

parce que s'il n'y a pas de symboles spéciaux dans les zones de texte, PDF est généré bien.

Pourriez-vous m'aider sur ce que je peux faire?/Tous les pointeurs.

Merci.

Répondre

Questions connexes