Note that there are some explanatory texts on larger screens.

plurals
  1. POGetting this "org.xhtmlrenderer.render.BlockBox cannot be cast to org.xhtmlrenderer.newtable.TableBox" while trying to render a pdf
    primarykey
    data
    text
    <p>I am getting this error while I am trying to render a pdf. I am using Nicolas Leroux's PDF module for the play framework.</p> <p>This is the entire stackstrace: <a href="http://pastebin.com/PuDgnGs9" rel="nofollow">Pastebin</a>. Googling only reveals 4 results. They suggest removing any float properties, and position attributes, which I have removed, jsut to give it a try. I am still facing this problem. Has anyone been able to solve the issue?</p> <p>EDIT: This is the html that renders the pdf:</p> <pre><code>#{extends 'main.html' /} #{set title:'Salary Details' /} &lt;html&gt; &lt;head&gt; &lt;title&gt;Employee Name&lt;/title&gt; &lt;style&gt; body { font: 9pt Arial, Helvetica, sans-serif; } .container { margin: 0 auto; width: 1000px; border: 1px solid black; padding: 12px; } .logoClass { width: 200px; height: 85px;; } .companyAddressClass { width: 60%; margin: 0 auto; font-size: 17px; font-weight: bold; text-align: center; } .empClass table { width: 100%; border: 1px solid #ccc; border-collapse: collapse; margin: 10px 0px; } .empClass table th,td { border: 1px solid #ccc; padding: 5px 5px; } .empClass table th { background: #f2f2f2; } &lt;/style&gt; &lt;/head&gt; &lt;body onload="window.print();"&gt; %{for(int i=0;i&lt;dataList.size ();i=i+1){}% &lt;div class="container" style="page-break-after:#{if i == dataList.size()-1} avoid;#{/if} #{else} always; #{/else}"&gt; &lt;div class="logoClass"&gt;&lt;/div&gt; &lt;div class="companyAddressClass"&gt; ${dataList.get(i).distributorName},&lt;br /&gt; ${dataList.get(i).city},&lt;br /&gt; ${dataList.get(i).state} &lt;br /&gt; &lt;br /&gt; &lt;span&gt;Payslip for the month of ${dataList.get(i).salaryMonth}&lt;/span&gt; &lt;/div&gt; &lt;br class="clear" /&gt; &lt;div class="empClass"&gt; &lt;table border="1"&gt; &lt;tr&gt; &lt;td&gt;Employee No: ${dataList.get(i).employeeNumber}&lt;/td&gt; &lt;td&gt;Location: ${dataList.get(i).location}&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Name: ${dataList.get(i).employeeName}&lt;/td&gt; &lt;td&gt;Salary for the M/O: ${dataList.get(i).salaryMonth}&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Bank Name: ${dataList.get(i).bankName}&lt;/td&gt; &lt;td&gt;Designation: ${dataList.get(i).designation}&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Bank Acc No: ${dataList.get(i).accountNumber}&lt;/td&gt; &lt;td&gt;Join Date: ${dataList.get(i).joinDate}&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;PF No: ${dataList.get(i).pfNumber}&lt;/td&gt; &lt;td&gt;Gender: ${dataList.get(i).gender}&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;ESI No: ${dataList.get(i).esiNumber}&lt;/td&gt; &lt;td&gt;LOP: ${dataList.get(i).lop}&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;PAN No: ${dataList.get(i).panNumber}&lt;/td&gt; &lt;td&gt;Days Worked: ${dataList.get(i).daysWorked}&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;/div&gt; &lt;br /&gt; &lt;div class="empClass"&gt; &lt;table border="1"&gt; &lt;tr&gt; &lt;th colspan="3"&gt;Earnings&lt;/th&gt; &lt;th colspan="2"&gt;Deductions&lt;/th&gt; &lt;/tr&gt; &lt;tr&gt; &lt;th align="left"&gt;Header&lt;/th&gt; &lt;th align="right"&gt;Actual&lt;/th&gt; &lt;th align="right"&gt;Paid&lt;/th&gt; &lt;th align="left"&gt;Header&lt;/th&gt; &lt;th align="right"&gt;Paid&lt;/th&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Basic&lt;/td&gt; &lt;td align="right"&gt;${dataList.get(i).basic}&lt;/td&gt; &lt;td align="right"&gt;${dataList.get(i).basic}&lt;/td&gt; &lt;td&gt;PF&lt;/td&gt; &lt;td align="right"&gt;${dataList.get(i).pf}&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;HRA&lt;/td&gt; &lt;td align="right"&gt;${dataList.get(i).hra}&lt;/td&gt; &lt;td align="right"&gt;${dataList.get(i).hra}&lt;/td&gt; &lt;td&gt;ESICEE&lt;/td&gt; &lt;td align="right"&gt;${dataList.get(i).esicee}&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Conveyance Allowance&lt;/td&gt; &lt;td align="right"&gt;${dataList.get(i).conveynanceAllowance}&lt;/td&gt; &lt;td align="right"&gt;${dataList.get(i).conveynanceAllowance}&lt;/td&gt; &lt;td&gt;ESICEE(PWS)&lt;/td&gt; &lt;td align="right"&gt;${dataList.get(i).esiceePWS}&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Medical Allowance&lt;/td&gt; &lt;td align="right"&gt;${dataList.get(i).medicalAllowances}&lt;/td&gt; &lt;td align="right"&gt;${dataList.get(i).medicalAllowances}&lt;/td&gt; &lt;td&gt;PT&lt;/td&gt; &lt;td align="right"&gt;${dataList.get(i).pt}&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Special Allowance&lt;/td&gt; &lt;td align="right"&gt;${dataList.get(i).specialAllowance}&lt;/td&gt; &lt;td align="right"&gt;${dataList.get(i).specialAllowance}&lt;/td&gt; &lt;td&gt;PT(PWS)&lt;/td&gt; &lt;td align="right"&gt;${dataList.get(i).ptPWS}&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Incentives&lt;/td&gt; &lt;td align="right"&gt;${dataList.get(i).midMonthAmountPWS}&lt;/td&gt; &lt;td align="right"&gt;${dataList.get(i).midMonthAmountPWS}&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td&gt;Other Allowances&lt;/td&gt; &lt;td align="right"&gt;${dataList.get(i).otherAllowance}&lt;/td&gt; &lt;td align="right"&gt;${dataList.get(i).otherAllowance}&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;td&gt;&amp;nbsp;&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td colspan="3" align="right"&gt;Total Earnings:${dataList.get(i).totalEarnings}&lt;/td&gt; &lt;td colspan="2" align="right"&gt;Total Deduction :${dataList.get(i).totalDeduction}&lt;/td&gt; &lt;/tr&gt; &lt;tr&gt; &lt;td colspan="3"&gt;&amp;nbsp;&lt;/td&gt; &lt;td colspan="2" align="right"&gt;&lt;strong&gt;Salary Credited : ${dataList.get(i).salaryCredited}&lt;/strong&gt;&lt;/td&gt; &lt;/tr&gt; &lt;/table&gt; &lt;table&gt; &lt;thead&gt; &lt;tr&gt; &lt;th&gt;Position Title&lt;/th&gt; &lt;th&gt;City Name&lt;/th&gt; &lt;th&gt;State Name&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;thead&gt; &lt;tr&gt; .. .. .. .. &lt;th&gt;${dataList.get(i).positionTitle}&lt;/th&gt; &lt;th&gt;${dataList.get(i).cityName}&lt;/th&gt; &lt;th&gt;${dataList.get(i).stateName}&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;/table&gt; &lt;br&gt; &lt;table&gt; &lt;thead&gt; &lt;tr&gt; &lt;th&gt;Some Header&lt;/th&gt; &lt;th&gt;Some Header&lt;/th&gt; &lt;th&gt;Some Header&lt;/th&gt; &lt;th&gt;Some Header&lt;/th&gt; &lt;/tr&gt; &lt;/thead&gt; &lt;tbody&gt; &lt;tr&gt; &lt;td align="center"&gt;Values&lt;/td&gt; .. .. .. .. .. &lt;/tr&gt; &lt;/tbody&gt; &lt;/table&gt; &lt;/div&gt; &lt;div&gt; &lt;span style="font-size: 15px; font-weight: bold;"&gt; Salary Credited Amount(In Words): ${dataList.get(i).salaryCreditedInWord} &lt;/span&gt; &lt;/div&gt; &lt;/div&gt; &lt;br /&gt; &lt;br /&gt; %{}}% &lt;/body&gt; &lt;/html&gt; </code></pre> <p>I am using Windows 7 and Tomcat6 as the testing environment, the same environment that people over <a href="https://code.google.com/p/flying-saucer/issues/detail?id=144" rel="nofollow">here</a> are facing trouble with.</p> <p>Thanks.</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload