1

pdf를 렌더링하는 동안이 오류가 발생합니다. 나는 플레이 프레임 워크를 위해 Nicolas Leroux의 PDF 모듈을 사용하고 있습니다.pdf 렌더링을 시도하는 중 "org.xhtmlrenderer.render.BlockBox를 org.xhtmlrenderer.newtable.TableBox에 캐스팅 할 수 없습니다."

전체 스택 추적 : Pastebin입니다. 인터넷 검색 결과는 4 개만 나타납니다. 플로트 속성을 제거하고 제거한 위치 특성을 제안하여 jsut로 시도해보십시오. 나는 아직도이 문제에 직면 해있다. 누구든지 문제를 해결할 수 있었습니까?

편집 :

#{extends 'main.html' /} #{set title:'Salary Details' /} 
<html> 
<head> 
<title>Employee Name</title> 
<style> 
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; 
} 
</style> 
</head> 

<body onload="window.print();"> 

    %{for(int i=0;i<dataList.size();i=i+1){}% 
    <div class="container" style="page-break-after:#{if i == dataList.size()-1} avoid;#{/if} #{else} always; #{/else}"> 
    <div class="logoClass"></div> 
    <div class="companyAddressClass"> 
     ${dataList.get(i).distributorName},<br /> ${dataList.get(i).city},<br /> 
     ${dataList.get(i).state} <br /> <br /> <span>Payslip for the 
      month of ${dataList.get(i).salaryMonth}</span> 
    </div> 
    <br class="clear" /> 
    <div class="empClass"> 
     <table border="1"> 
      <tr> 
       <td>Employee No: ${dataList.get(i).employeeNumber}</td> 
       <td>Location: ${dataList.get(i).location}</td> 
      </tr> 
      <tr> 
       <td>Name: ${dataList.get(i).employeeName}</td> 
       <td>Salary for the M/O: ${dataList.get(i).salaryMonth}</td> 
      </tr> 
      <tr> 
       <td>Bank Name: ${dataList.get(i).bankName}</td> 
       <td>Designation: ${dataList.get(i).designation}</td> 
      </tr> 
      <tr> 
       <td>Bank Acc No: ${dataList.get(i).accountNumber}</td> 
       <td>Join Date: ${dataList.get(i).joinDate}</td> 
      </tr> 
      <tr> 
       <td>PF No: ${dataList.get(i).pfNumber}</td> 
       <td>Gender: ${dataList.get(i).gender}</td> 
      </tr> 
      <tr> 
       <td>ESI No: ${dataList.get(i).esiNumber}</td> 
       <td>LOP: ${dataList.get(i).lop}</td> 
      </tr> 
      <tr> 
       <td>PAN No: ${dataList.get(i).panNumber}</td> 
       <td>Days Worked: ${dataList.get(i).daysWorked}</td> 
      </tr> 
     </table> 
    </div> 
    <br /> 
    <div class="empClass"> 
     <table border="1"> 
      <tr> 
       <th colspan="3">Earnings</th> 
       <th colspan="2">Deductions</th> 
      </tr> 
      <tr> 
       <th align="left">Header</th> 
       <th align="right">Actual</th> 
       <th align="right">Paid</th> 
       <th align="left">Header</th> 
       <th align="right">Paid</th> 
      </tr> 
      <tr> 
       <td>Basic</td> 
       <td align="right">${dataList.get(i).basic}</td> 
       <td align="right">${dataList.get(i).basic}</td> 
       <td>PF</td> 
       <td align="right">${dataList.get(i).pf}</td> 
      </tr> 
      <tr> 
       <td>HRA</td> 
       <td align="right">${dataList.get(i).hra}</td> 
       <td align="right">${dataList.get(i).hra}</td> 
       <td>ESICEE</td> 
       <td align="right">${dataList.get(i).esicee}</td> 
      </tr> 
      <tr> 
       <td>Conveyance Allowance</td> 
       <td align="right">${dataList.get(i).conveynanceAllowance}</td> 
       <td align="right">${dataList.get(i).conveynanceAllowance}</td> 
       <td>ESICEE(PWS)</td> 
       <td align="right">${dataList.get(i).esiceePWS}</td> 
      </tr> 
      <tr> 
      <td>Medical Allowance</td> 
       <td align="right">${dataList.get(i).medicalAllowances}</td> 
       <td align="right">${dataList.get(i).medicalAllowances}</td> 
       <td>PT</td> 
       <td align="right">${dataList.get(i).pt}</td> 
      </tr> 
      <tr> 
       <td>Special Allowance</td> 
       <td align="right">${dataList.get(i).specialAllowance}</td> 
       <td align="right">${dataList.get(i).specialAllowance}</td> 
       <td>PT(PWS)</td> 
       <td align="right">${dataList.get(i).ptPWS}</td> 
      </tr> 
      <tr> 
       <td>Incentives</td> 
       <td align="right">${dataList.get(i).midMonthAmountPWS}</td> 
       <td align="right">${dataList.get(i).midMonthAmountPWS}</td> 
       <td>&nbsp;</td> 
       <td>&nbsp;</td> 
      </tr> 
      <tr> 
       <td>Other Allowances</td> 
       <td align="right">${dataList.get(i).otherAllowance}</td> 
       <td align="right">${dataList.get(i).otherAllowance}</td> 
       <td>&nbsp;</td> 
       <td>&nbsp;</td> 
      </tr> 
      <tr> 
       <td colspan="3" align="right">Total 
        Earnings:${dataList.get(i).totalEarnings}</td> 
       <td colspan="2" align="right">Total Deduction 
        :${dataList.get(i).totalDeduction}</td> 
      </tr> 
      <tr> 
       <td colspan="3">&nbsp;</td> 
       <td colspan="2" align="right"><strong>Salary Credited 
         : ${dataList.get(i).salaryCredited}</strong></td> 
      </tr> 
     </table> 

     <table> 
     <thead> 
      <tr> 
       <th>Position Title</th> 
       <th>City Name</th> 
       <th>State Name</th> 
      </tr> 
     </thead> 
     <thead> 
      <tr> 
       .. 
       .. 
       .. 
       .. 
       <th>${dataList.get(i).positionTitle}</th> 
       <th>${dataList.get(i).cityName}</th> 
       <th>${dataList.get(i).stateName}</th> 
      </tr> 
     </thead> 
    </table> 
    <br> 
     <table> 
     <thead> 
      <tr> 
       <th>Some Header</th> 
       <th>Some Header</th> 
       <th>Some Header</th> 
       <th>Some Header</th> 

      </tr> 
     </thead> 
     <tbody> 
      <tr> 
       <td align="center">Values</td> 
       .. 
       .. 
       .. 
       .. 
       .. 
      </tr> 
     </tbody> 
    </table> 
    </div> 
    <div> 
     <span style="font-size: 15px; font-weight: bold;"> Salary 
      Credited Amount(In Words): ${dataList.get(i).salaryCreditedInWord} </span> 
    </div> 
    </div> 
    <br /> 
    <br /> 

    %{}}% 
</body> 
</html> 

내가 테스트 환경으로 Windows 7 및 Tomcat6을 사용하고, here 명 이상이 함께 문제를 직면하고있는 것과 같은 환경 :이 PDF를 렌더링하는 HTML이다.

감사합니다.

+0

문제를 해결하려면 모듈 작성자에게 문의하십시오. 그리고 우리는 당신이 생성하는 pdf에 대한 코드를 보지 않고는 도울 수 없습니다. –

+0

@PereVillega 코드를 추가했습니다. 또한 저자에게 시간을 할애 할 수 있는지 문의 할 것입니다. – theTuxRacer

+0

코드를 HTML 페이지로 사용하면 Flying Saucer R8을 사용하여 PDF를 생성 할 수 있습니다. 변환하려는 실제 HTML은 무엇입니까? – Adam

답변

1

This commit은 문제를 해결하기위한 것입니다. download the whole class을 소스 코드에 넣으면 라이브러리 jar를 다시 빌드하지 않아도됩니다.

+0

이 오래된 질문에 대답 해 주셔서 감사합니다. 나는 더 이상 연극 틀과 관련이 없지만 나와 당신의 답변은 높이 평가됩니다. – theTuxRacer