2013-10-29 3 views
3

C# 웹 사이트에서 asp.net으로 작업 중입니다. 내가 divs, 라벨, 테이블, CSS 스타일 (배경색, cssClass 등)와 이미지와 같은 다양한 HTML 요소를 포함하는 HTML DIV로 변환하고 iTextSharp DLL을 사용하여 PDF로 변환하는 전체 내용을 원하지만 여기에 직면하고있다. css가 apply.Can 어떤 예제 또는 코드 스 니펫을 제공하여 나를 도울 수 없다는 문제.iTextSharp를 사용하여 CSS가있는 HTML을 PDF로 변환

+0

당신이 iTextSharp를 사용해야합니까를? http://code.google.com/p/wkhtmltopdf/ 매우 효과적으로 내 HTML -> PDF 변환을 무료로 수행했습니다. – DaveDev

+0

예 ... asp.net 및 C#에서 wkhtmltopdf를 사용할 수 있습니까? – Superman

+0

iTextXmlWorker를 사용하여 mvc C# .net 앱에서이 작업을 수행했습니다. 사용하는 경우 나에게 알려주고 나는 일부 정보와 함께 답변을 게시 할 것입니다. – hutchonoid

답변

0

wkhtmltopdf에 대한 C# 래퍼 인 Pechkin을 확인하십시오.

특히이 시점에서 (보류중인 끌어 오기 요청 고려) 나는 버그 (특히 내 경험에 기반한 IIS에서 유용함)를 해결하는 this fork을 확인했습니다.

포크/다른 안정성 문제가없는 경우 "렌더 대기열"(예 : 데이터베이스)을보고 백그라운드 프로세스 (예 : Windows 서비스)를 주기적으로 실행하는 것이 좋습니다 대기열을 통해 렌더링 한 다음 이진 내용을 어딘가에 저장합니다 (데이터베이스 또는 파일 시스템에 저장). 이것은 전적으로 당신의 유스 케이스에 달려있다.

또는 the similar solution @DaveDev에 연결된 메모가 있습니다.

0

2 NuGet 패키지 iTextSharp를 설치하고 itextsharp.xmlworker 다음과 같은 코드를 사용합니다

using iTextSharp.text; 
using iTextSharp.text.pdf; 
using iTextSharp.tool.xml; 


byte[] pdf; // result will be here 

var cssText = File.ReadAllText(MapPath("~/css/test.css")); 
var html = File.ReadAllText(MapPath("~/css/test.html")); 

using (var memoryStream = new MemoryStream()) 
{ 
      var document = new Document(PageSize.A4, 50, 50, 60, 60); 
      var writer = PdfWriter.GetInstance(document, memoryStream); 
      document.Open(); 

      using (var cssMemoryStream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(cssText))) 
      { 
       using (var htmlMemoryStream = new MemoryStream(System.Text.Encoding.UTF8.GetBytes(html))) 
       { 
        XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, htmlMemoryStream, cssMemoryStream); 
       } 
      } 

      document.Close(); 

      pdf = memoryStream.ToArray(); 
} 
관련 문제