2013-10-31 31 views
5

itextsharpを使用してhtmlからpdfに変換すると、WebページにCSSで適用されるスタイルiamは変換されたpdfで機能しません。ここitextsharpを使用してHTMLをPDFに変換

は私のCSSコードです:ここ

<style type="text/css"> 
     .cssformat 
      { 
       width:300px; 
       height:200px; 
       border:2px solid black; 
       background-color:white; 
       border-top-left-radius:60px 90px; 
       border-bottom-right-radius:60px 90px; 
     }     
     </style> 

は私のhtmlコードは次のとおりです。

 <div id="divpdf" runat="server"> 
     <table id="tid" runat="server"> 
     <tr> 
     <td> 
     <asp:Label ID="Label1" runat="server" Text="this is new way of pdf" CssClass="cssformat"></asp:Label> 
     </td> 
     </tr> 
     </table> 
     </div> 

次は私がC#ので試してみましたものです:

Response.ContentType = "application/pdf"; 
     Response.AddHeader("content-disposition", "attachment;filename=TestPage.pdf"); 
     Response.Cache.SetCacheability(HttpCacheability.NoCache); 
     StringBuilder sb = new StringBuilder(); 
     StringWriter sw = new StringWriter(); 
     HtmlTextWriter hw = new HtmlTextWriter(sw); 
     Document pdfDoc = new Document(PageSize.A4, 60f, 80f, -2f, 35f); 
     divpdf.RenderControl(hw); 
     StringReader sr = new StringReader(sw.ToString()); 
     HTMLWorker htmlparser = new HTMLWorker(pdfDoc); 
     PdfWriter writer = PdfWriter.GetInstance(pdfDoc, Response.OutputStream); 
     pdfDoc.Open(); 
     hw1.Parse(new StringReader(sttt)); 
     htmlparser.Parse(sr); 
     pdfDoc.Close(); 
     Response.Write(pdfDoc); 
     Response.End(); 
     sw.Close(); 
     sr.Close(); 
     hw.Close(); 

答えて

4

iTextSharpを使用してHTMLからPDFへの変換にかなり苦労し、最終的に私のHTML5/CSS3ページと同じ100%に見える変換済みPDFを取得できなかったため、あきらめました。だから私は最終的に私のために働いた選択肢をあなたに与えています。

商業用ライブラリの代金を支払う準備ができていない場合、驚くほどごくわずかなオプションがあります。私は、サードパーティ製のツールに支払うことを望まないクライアント(HTMLからPDFへの変換)の1人から同じ要件を持っていたので、私は計画を立てなければなりませんでした。これは私が行ったことであり、最良の解決策ではありませんでしたが、仕事は終わりました。

wkhtmltopdfの最新バージョンをダウンロードしました。残念ながら、wkhtmltopdfツールでは、PDFに変換する際にHTMLに埋め込まれたGoogleのグラフが表示されませんでした。そこで、wkhtmltoimageツールを使用してPNGに変換しました.PNGは期待どおりにウォークしてすべてのグラフを表示しました。 その後私はimagemagickの最新バージョンをダウンロードし、PNGをPDFに変換しました。 私はこのプロセスをC#で自動化しました。

残念ながら、2つのコンバージョンを実行してすべてを自動化する必要があるため、これはもっとも洗練されたソリューションではありませんが、これは私が望む結果と品質をもたらした最高のソリューションです。

もちろん、より高速でより良い仕事をする市販のソフトウェアがたくさんあります。

ただ、サイドノート:私は変換しなければならなかった

ウェブページは、ブートストラップのバージョン3を使用してHTML5とCSS3でdevloped、それは一部のGoogleのグラフやチャートを含んでいました。すべてが問題なく変換されました。

-1

出力形式<asp:Lable>の "span"はインラインタイプの表示です。そのため、表示をブロックに変更してください。お楽しみください..

関連する問題