2016-10-26 1 views
1

Я пытаюсь сделать HTML-фактуру в формате PDF в моем приложении, но в результате PDF выглядит иначе, чем страница выглядит в браузере (IE, Chrome и Firefox)iTextSharp раздирающие HTML в PDF по-другому, чем браузер

Любые идея почему? Я хочу, чтобы браузер вышел.

HTML

<table width='100%' cellspacing='0' cellpadding='2'> 
    <tr> 
     <td align='center' style='background-color: #18B5F0' colspan = '2'><b>Order Sheet</b></td> 
    </tr> 
    <tr> 
     <td colspan = '2'></td> 
    </tr> 
    <tr> 
     <td><b>Order No: </b>2303</td> 
     <td align = 'right'><b>Date: </b>26/10/2016 15:58:52 </td> 
    </tr> 
    <tr> 
     <td colspan = '2'><b>Company Name: </b>ASPSnippets</td> 
    </tr> 
</table> 
<br /> 
<table border = '1'> 
    <tr> 
     <th style = 'background-color: #D20B0C;color:#ffffff'>ProductId</th> 
     <th style = 'background-color: #D20B0C;color:#ffffff'>Product</th> 
     <th style = 'background-color: #D20B0C;color:#ffffff'>Price</th> 
     <th style = 'background-color: #D20B0C;color:#ffffff'>Quantity</th> 
     <th style = 'background-color: #D20B0C;color:#ffffff'>Total</th> 
    </tr> 
    <tr> 
     <td>101</td> 
     <td>Sun Glasses ljkh jkh kj hkjh kjh kjh kjh kj kjh kj jkh kj kjh kjh </td> 
     <td>200</td> 
     <td>5</td> 
     <td>1000</td> 
    </tr> 
    <tr> 
     <td>102</td> 
     <td>Jeans</td> 
     <td>400</td> 
     <td>2</td> 
     <td>800</td> 
    </tr> 
    <tr> 
     <td>103</td> 
     <td>Trousers</td> 
     <td>300</td> 
     <td>3</td> 
     <td>900</td> 
    </tr> 
    <tr> 
     <td>104</td> 
     <td>Shirts</td> 
     <td>550</td> 
     <td>2</td> 
     <td>1100</td> 
    </tr> 
    <tr> 
     <td align = 'right' colspan = '4'>Total</td> 
     <td>3800</td> 
    </tr> 
</table> 

C#

StringReader sr = new StringReader(myhtmlstring); 

Document pdfDoc = new Document(PageSize.A4, 10f, 10f, 10f, 0f);  
PdfWriter writer = PdfWriter.GetInstance(pdfDoc, new FileStream("MyPDF2.pdf", FileMode.Create)); 

pdfDoc.Open(); 

XMLWorkerHelper.GetInstance().ParseXHtml(writer, pdfDoc, sr); 

pdfDoc.Close(); 

PDF PDF Result

Browser (Не обращайте внимания на мусор после солнечных очков) Browser Result

ответ

0

Я нашел много сообщений с точным с теми же жалобами. Видимо, HTML Parser немного придирчив.

Я попробовал библиотеку http://ironpdf.com/, которая доступна на nuget и преобразует ее точно так, как это делает браузер.

enter image description here