2009-04-27 3 views
2

누구든지 html 콘텐츠를 가져 와서 pdf로 변환하고 데이터베이스에 저장하는 방법을 알고 있습니까?html 콘텐츠를 가져 와서 itextsharp로 PDF로 변환하는 방법은 무엇입니까?

여러 가지 방법을 시도했지만 아무 것도 작동하지 않습니다. 일부 기사에서는 HTMLParse를 사용하기 위해 작성되었지만 HTMLWorker는 ... 때때로 "문서에는 페이지가 없습니다"라는 오류가 발생합니다 ... 때때로 예외가 발생하지만 오류를 지정하지 않았습니다 ...

누구든지이 작업을 수행하는 좋은 방법을 알고 있습니까?

저는 C# 3.0, ASP.NET MVC 및 LinQToSQL을 사용하고 있습니다.

미리 감사드립니다.

답변

2

HTML to PDF의 경우 나는 HTMLDoc입니다. 그것은 exe와 도서관이 아니므로, 당신이 찾고있는 것과 정확히 같지 않을 수도 있습니다.하지만 아마도 당신을 고비에서 넘겨 줄 것입니다. 이 iText 책을 찾고

, Lowagie는 말한다 :

"는 iText를 메일 링리스트에 자주 질문 중 하나는, '이 iText는 HTML2PDF 기능을 제공 하는가?'입니다 공식 답변은 '아니오'이며 HtmlDoc 또는 ICEBrowser를 사용하는 것이 좋습니다. " 그는 HTMLParser의 예를 보여주기 위해 계속 진행하지만, HTML을 파싱하고 표시하는 것은 최대의 일이라고 강조합니다.

0
public class Pdf : IPdf 
    { 
     public FileStreamResult Make(string s) 
     { 
      using (var ms = new MemoryStream()) 
      { 
       using (var document = new Document()) 
       { 
        PdfWriter.GetInstance(document, ms); 
        document.Open(); 
        using (var str = new StringReader(s)) 
        { 

         var htmlWorker = new HTMLWorker(document); 

         htmlWorker.Parse(str); 
        } 
        document.Close(); 
       } 

       HttpContext.Current.Response.ContentType = "application/pdf"; 
       HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=MyPdfName.pdf"); 
       HttpContext.Current.Response.Buffer = true; 
       HttpContext.Current.Response.Clear(); 
       HttpContext.Current.Response.OutputStream.Write(ms.GetBuffer(), 0, ms.GetBuffer().Length); 
       HttpContext.Current.Response.OutputStream.Flush(); 
       HttpContext.Current.Response.End(); 

       return new FileStreamResult(HttpContext.Current.Response.OutputStream, "application/pdf"); 
      } 
     } 
    }