2017-03-02 3 views
-2

ITextSharp이고 에 CSS를 내 PDF에 포함하고 싶습니다.. 다음은 내 현재 코드 :Java ByteArrayInputStream (C#의 경우 iTextSharp XMLWorker 사용)

ByteArrayInputStream bis = new ByteArrayInputStream(htmlSource.toString().getBytes()); 
ByteArrayInputStream cis = new ByteArrayInputStream(cssSource.toString().getBytes()); 
XMLWorkerHelper.getInstance().parseXHtml(writer, document, bis, cis); 

그러나 문제는 내가 ByteArrayInputStream에 대한 참조 부족 때문이다. System.IO조차도 오류를 수정할 수 없습니다. 이에 대한 다른 해결 방법이 있습니까?

대단히 감사합니다!

+1

그 코드는 iText를 자바 버전처럼 보인다. C#에 대한 도움이 필요하십니까? 그렇다면 C# 코드를 게시 할 수 있습니까? –

+0

자바 샘플을 .Net으로 이식하려고하면 'ByteArrayInputStream'과'ByteArrayOutputStream'은 보통'MemoryStream'이됩니다. – mkl

+0

@MikeHixson ** C# **로 변환하는 데 도움이 필요하지만 IText를 처음 사용합니다. 내 현재 코드는'parseXHtml'을 사용하지만 CSS 매개 변수는 없지만 PDF에 CSS를 포함해야한다는 것을 깨달았습니다. 위의 코드는'parseXHtml'을 사용하여 CSS와 HTML을 통합 한 온라인 스 니펫입니다. – JPaulPunzalan

답변

0

단순 작업 예제는 시작하려면 :

var html = "<h1>H1</h1>"; 
var css = "h1 {font-size: 2em;}"; 

using (var htmlStream = new MemoryStream(Encoding.UTF8.GetBytes(html))) 
{ 
    using (var cssStream = new MemoryStream(Encoding.UTF8.GetBytes(css))) 
    { 
     using (var memoryStream = new MemoryStream()) 
     { 
      using (var document = new Document()) 
      { 
       PdfWriter writer = PdfWriter.GetInstance(
        document, memoryStream 
       ); 
       document.Open(); 
       XMLWorkerHelper.GetInstance().ParseXHtml(
        writer, document, htmlStream, cssStream 
       ); 
      } 
      File.WriteAllBytes(OUTPUT_FILE, memoryStream.ToArray()); 
     } 
    } 
}