2017-03-02 3 views
-2

ich verwende iTextSharp und ich wollte gehören CSS zu meinem PDF. Im Folgenden finden Sie meine aktuellen Code:Java ByteArrayInputStream in C# iTextSharp XMLWorker

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

Aber das Problem ist, dass ich eine Referenz für ByteArrayInputStream fehlt. Selbst System.IO kann den Fehler nicht beheben. Gibt es andere Problemumgehungen?

Vielen Dank!

+1

Dieser Code sieht aus wie Java-Version von iText. Bist du sicher, dass du Hilfe mit C# brauchst? Wenn ja, können Sie Ihren C# -Code posten? –

+0

Wenn Sie versuchen, Java-Beispiele nach .Net zu portieren, werden 'ByteArrayInputStream' und' ByteArrayOutputStream' normalerweise zu 'MemoryStream'. – mkl

+0

@MikeHixson Ich brauche Hilfe bei der Umwandlung in ** C# **, aber ich bin neu bei IText. Mein derzeitiger Code verwendet 'parseXHtml', hat aber keinen CSS-Parameter, aber ich habe festgestellt, dass ** ich ** CSS in mein PDF einfügen muss. Der obige Code ist der einzige Ausschnitt, den ich online sah, der CSS und HTML mit 'parseXHtml' enthält. – JPaulPunzalan

Antwort

0

Ein einfaches, funktionierendes Beispiel für den Einstieg:

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