2016-06-22 2 views
1

Laravel을 사용하여 side-by-side보기를 위해 3 개의 다른 테이블이 중첩 된 큰 테이블을 만듭니다. 나는 domPDF가 플로팅을 지원하지 않을 것이므로 이것을해야만했다. 페이지에 같은 요소가 반복 될 것이므로 포지셔닝을 사용할 수 없습니다. 이것이 최고의 아이디어처럼 보입니다. 내가 PDF에 여러 개의 중첩 된 테이블이있을 때마다domPDF 중첩 테이블 문제 (우측 하단의 Ractangular 공백 문자)

그러나, 이상한 일이 발생 :이 온라인에 대한 해결책을 찾을 수 있었다

strange white space

.

소스 코드 :

@foreach ($employees as $employee) 

      <table style="width: 100%; margin-top: 5px; border-bottom: 1px solid grey; margin-bottom: 5px;" border="0" cellspacing="0" cellpadding="5"> 
       <tbody> 
        <tr> 
         <td width="25%" style="background: lightgrey;">Name: <strong>{{$employee['info']->name}}</strong></td> 
         <td width="25%" style="background: lightgrey;">Mobile: <strong>{{$employee['info']->mobile}}</strong></td> 
         <td width="25%">Date: <strong>{{$inputs['date']}}</strong></td> 
         <td width="25%">Remarks:</td> 
        </tr> 
        <tr> 
         <td colspan="2"> 
          <table style="width: 100%;" border="1" cellpadding="5" cellspacing="0"> 
           <thead> 
            <tr> 
             <th colspan="3">Receive</th> 
            </tr> 
           </thead> 
           <tbody> 
            @if ($employee['given']->isEmpty()) 
             <tr> 
              <td colspan="2"></td> 
             </tr> 
            @else 
             @foreach ($employee['given'] as $tr) 

             <tr> 
              <td>{{ strtoupper($tr->category) }}</td> 
              <td style="text-align: right;">{{ App\Transaction::formatMoney($tr->amount) }}</td> 
             </tr> 

             @endforeach 
            @endif 
           </tbody> 
          </table> 
         </td> 
         <td colspan="2"> 
          <table style="width: 100%;" border="1" cellpadding="5" cellspacing="0"> 
           <thead> 
            <tr> 
             <th colspan="3">Return</th> 
            </tr> 
           </thead> 
           <tbody> 
            @if ($employee['returned']->isEmpty()) 
             <tr> 
              <td colspan="2"></td> 
             </tr> 
            @else 
             @foreach ($employee['returned'] as $tr) 

             <tr> 
              <td>{{ strtoupper($tr->category) }}</td> 
              <td style="text-align: right;">{{ App\Transaction::formatMoney($tr->amount) }}</td> 
             </tr> 

             @endforeach 
            @endif 
           </tbody> 
          </table> 
         </td> 
        </tr> 
        <tr> 
         <td> 
          <table style="width:100%" border="1" cellpadding="2" cellspacing="0"> 
           <tbody> 
            <tr> 
             <td>Total Receive</td> 
             <td style="text-align: right;">{{ App\Transaction::formatMoney($employee['given']->sum('amount')) }}</td> 
            </tr> 
            <tr> 
             <td>Total Return</td> 
             <td style="text-align: right;">{{ App\Transaction::formatMoney($employee['returned']->sum('amount')) }}</td> 
            </tr> 
            <tr style="background-color: {{ $employee['returned']->sum('amount') - $employee['given']->sum('amount') < 0 ? 'lightgrey' : '' }}"> 
             <td>Balance</td> 
             <td style="text-align: right;">{{ App\Transaction::formatMoney($employee['returned']->sum('amount') - $employee['given']->sum('amount')) }}</td> 
            </tr> 
            <tr> 
             <td>B2B</td> 
             <td style="text-align: right;">{{ App\Transaction::formatMoney($employee['b2b']) }}</td> 
            </tr> 
            <tr> 
             <td>Sale</td> 
             <td style="text-align: right;">{{ App\Transaction::formatMoney($employee['sale']) }}</td> 
            </tr> 
           </tbody> 
          </table> 
         </td> 
         <td></td> 
         <td></td> 
         <td></td> 
        </tr> 
       </tbody> 
      </table> 

     @endforeach 
+0

HTML을 만드는 코드 대신 HTML을 제공 할 수 있습니까? – BrianS

+0

관련 CSS를 보는 것도 도움이 될 것입니다. – BrianS

답변

0

그것은 단지 2. 분명히 몇 가지 버그입니다 ("반환"을 "수신"등) 해당 테이블의 컬럼의 실제 번호가있는 동안 colspan="3"로 설정되어 테이블 헤더처럼 보인다 테이블 렌더링 주위에 동작하지만 colspan 2로 설정하면 예상대로 렌더링해야합니다.