2016-07-20 7 views
0

型「System.ArgumentExceptionの」の例外がitextsharp.DLLで発生したカラーコードを変換しないDLLが、ユーザーコードではitextsharpは適切

追加情報処理されなかった:不明カラーフォーマットを。

Response.ContentType = "application/pdf"; 
    Response.AddHeader("content-disposition", "attachment;filename=TestPage.pdf"); 
    Response.Cache.SetCacheability(HttpCacheability.NoCache); 
    StringWriter sw = new StringWriter(); 
    HtmlTextWriter hw = new HtmlTextWriter(sw); 
    form1.RenderControl(hw); 
    StringReader sr = new StringReader(sw.ToString()); 
    Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0f); 
    HTMLWorker htmlparser = new HTMLWorker(pdfDoc); 
    PdfWriter.GetInstance(pdfDoc, Response.OutputStream); 
    pdfDoc.Open(); 
    htmlparser.Parse(sr); 
    pdfDoc.Close(); 
    Response.Write(pdfDoc); 
    Response.End(); 
+0

エラーを引き起こしている入力とitextsharpを使用しているサンプルコードを提供してください。 – Riaan

+0

もう一度私は質問を編集できます –

+0

エラーを出すhtmlのサンプルがありますか? – Riaan

答えて

0

ノートのカップルをHTMLページをconveritngとき#RGBまたは#RRGGBB

にする必要があり、それは述べています。

  1. HtmlWorker is being deprecatediTextSharp。あなたはNugetを使ってインストールできるiTextSharp XML Workerを調べてみるべきです。

  2. 要旨リンクに提供されたHTML

    は、いくつかの矛盾を持って、あなたの<link><meta><p><br><img>タグは任意のクロージング「/>」タグを持っていません。終了タグを省略するとブラウザが寛容になることがありますが、iTextSharpのHTMLからPDFへの変換ツールを使用するには、終了タグが必要です。私は成功しiTextSharpのXMLWorkerHelperを使用してHTMLにマイナーな問題を修正した後、あなたのhtmlを変換するのに使用される方法同封

private static void WritetHtmlToPdf() 
    { 
     using (var stream = new FileStream("C:\\Temp\\htmlsample.pdf", FileMode.Create)) 
     { 
      using (var document = new Document(PageSize.A4, 10f, 10f, 100f, 0f)) 
      { 
       var writer = PdfWriter.GetInstance(document, stream); 
       document.Open(); 

       using (var filestream = new FileStream("C:\\temp\\sample.html", FileMode.Open, FileAccess.Read)) 
       { 
        XMLWorkerHelper.GetInstance().ParseXHtml(writer, document, filestream, Encoding.UTF8); 
       } 
      } 
     } 
    } 

私はXMLWorkerHelperを使用するようにコードを更新しようとしましたが、私はそれがそのままうまくいくことを保証することはできませんが、それはあなたのアイデアを与える必要があります。

 Response.ContentType = "application/pdf"; 
     Response.AddHeader("content-disposition", "attachment;filename=TestPage.pdf"); 
     Response.Cache.SetCacheability(HttpCacheability.NoCache); 
     StringWriter sw = new StringWriter(); 

     Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 100f, 0f); 
     pdfDoc.Open(); 

     XMLWorkerHelper.GetInstance().ParseXHtml(sw, pdfDoc, Response.OutputStream, Encoding.UTF8); 

     pdfDoc.Close(); 
     Response.Write(pdfDoc); 
     Response.End(); 

はこれが役立つことを願っています君は。