2016-09-28 2 views
-4

StringWriter & HtmlTextWriter를 사용하여 pdf에 내 표 (System.Web.UI.WebControls)를 넣으려고하는데 오류가있는 pdf 파일이 나타납니다.C# 표를 PDF 파일로 변환

여기 내 코드입니다 :

 table.RenderControl(htw); 
     HttpContext.Current.Response.Clear(); 
     HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=Reception.pdf"); 
     HttpContext.Current.Response.ContentType = "application/pdf"; 
     HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache); 
     //render the htmlwriter into the response 
     HttpContext.Current.Response.Write(headerTable); 
     HttpContext.Current.Response.Write(sw.ToString()); 
     HttpContext.Current.Response.End(); 

내가 가진 내가 pdf 파일을 열 때 "로드 문서 PDF로 오류".

+2

오류가 무엇입니까? 누구나 당신을 도울 수 있도록 완벽하고 최소한의 검증 가능한 예를 제공해야합니다. 여기에는 재현 가능한 코드와 오류를 게시하는 것이 포함됩니다. – Lexi

+0

파일을 열면 "pdf 파일을로드하는 중 오류가 발생했습니다." –

+0

sw이란 무엇입니까? 그것은 유효한 pdf 바이트 배열을 포함하거나 무엇? –

답변

0

잘 클래스 iTextSharp이 일을하기 위해 관련입니다 .. 나는이 내 코드를 변경 :

 table.RenderControl(htw); 
     StringReader sr = new StringReader(sw.ToString()); 
     Document pdfDoc = new Document(PageSize.A2, 10f, 10f, 10f, 0f); 
     HTMLWorker htmlparser = new HTMLWorker(pdfDoc); 
     PdfWriter.GetInstance(pdfDoc, Response.OutputStream); 
     pdfDoc.Open(); 
     htmlparser.Parse(sr); 
     pdfDoc.Close(); 
     Response.ContentType = "application/pdf"; 
     Response.AddHeader("content-disposition", "attachment;filename=Reception.pdf"); 
     Response.Cache.SetCacheability(HttpCacheability.NoCache); 
     Response.Write(pdfDoc); 
     Response.End();