2017-03-02 6 views
-2

J'utilise iTextSharp et je voulais inclure CSS à mon PDF. Voici mon code actuel:Java ByteArrayInputStream en C# en utilisant iTextSharp XMLWorker

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

Mais le problème est que je manque une référence pour ByteArrayInputStream. Même System.IO ne peut pas corriger l'erreur. Y a-t-il d'autres solutions de contournement à cela?

Merci beaucoup!

+1

Ce code ressemble à la version Java de iText. Etes-vous sûr d'avoir besoin d'aide avec C#? Si oui, pouvez-vous poster votre code C#? –

+0

Si vous essayez de transférer des échantillons java vers .Net, 'ByteArrayInputStream' et' ByteArrayOutputStream' deviennent généralement 'MemoryStream'. – mkl

+0

@MikeHixson J'ai besoin d'aide pour le convertir en ** C# ** mais je suis nouveau à IText. Mon code actuel utilise 'parseXHtml' mais n'a pas le paramètre CSS mais je me suis rendu compte que j'avais ** besoin ** d'inclure du CSS dans mon PDF. Le code ci-dessus est le seul extrait que j'ai vu en ligne qui incorpore CSS et HTML en utilisant 'parseXHtml'. – JPaulPunzalan

Répondre

0

Un exemple simple, travailler pour vous lancer:

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()); 
     } 
    } 
}