2013-10-31 21 views
5

khi chuyển đổi html sang pdf sử dụng itextsharp kiểu iam áp dụng với css cho trang web không hoạt động trong pdf được chuyển đổi.Chuyển đổi HTML sang PDF bằng itextsharp

đây là mã css của tôi:

<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> 

đây là mã html của tôi:

 <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> 

Sau đây là những gì tôi đã thử với 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(); 

Trả lời

4

Tôi đã gặp khó khăn khi chuyển đổi từ HTML sang PDF bằng iTextSharp và cuối cùng đã từ bỏ vì tôi không thể tải PDF được chuyển đổi 100% giống như trang HTML5/CSS3 của tôi. Vì vậy, tôi cung cấp cho bạn giải pháp thay thế mà cuối cùng đã hiệu quả đối với tôi.

Có rất ít tùy chọn khả dụng khi bạn không sẵn sàng trả tiền cho thư viện thương mại. Tôi đã có yêu cầu tương tự từ một trong những khách hàng của tôi (để chuyển đổi từ HTML sang PDF) mà không muốn trả tiền cho bất kỳ công cụ của bên thứ ba nào, vì vậy tôi phải lập kế hoạch. Đây là những gì tôi đã làm, không phải là giải pháp tốt nhất, nhưng nó đã hoàn thành công việc

Tôi đã tải xuống phiên bản mới nhất của wkhtmltopdf. Rất tiếc, công cụ wkhtmltopdf không hiển thị một số biểu đồ google của tôi được nhúng trong HTML của tôi khi chuyển đổi sang PDF. Vì vậy, tôi đã sử dụng công cụ wkhtmltoimage cũng được bao gồm để chuyển đổi sang PNG, được gọi như mong đợi và hiển thị tất cả các đồ thị. Sau đó tôi đã tải xuống phiên bản mới nhất của imagemagick và chuyển đổi PNG sang PDF. Tôi đã tự động hóa quá trình này bằng C#. Đây không phải là giải pháp thanh lịch nhất bởi vì bạn phải thực hiện hai chuyển đổi và thực hiện một chút công việc để tự động hóa mọi thứ, nhưng đây là giải pháp tốt nhất tôi có thể đưa ra cho tôi kết quả và chất lượng mong muốn.

Tất nhiên, có rất nhiều phần mềm thương mại ngoài đó sẽ thực hiện công việc nhanh hơn và tốt hơn.

Chỉ cần một mặt lưu ý:

Các trang web mà tôi đã phải chuyển đổi được devloped trong HTML5 và CSS3 sử dụng phiên bản 3 của bootstrap và nó chứa đựng một số đồ thị và biểu đồ google. Mọi thứ đã được chuyển đổi mà không có bất kỳ vấn đề gì.

-1

Các định dạng đầu ra của <asp:Lable> là "span", là loại nội tuyến hiển thị. Vì vậy, thay đổi hiển thị để chặn. Thưởng thức ..

Các vấn đề liên quan