2017-05-19 1 views
0

Ich versuche eine Seite an dompdf zu übergeben, um sie zu rendern, aber die Schaltfläche zum Rendern der Seite befindet sich auf der Seite selbst.laravel-dompdf: Wie mache ich dommpdf rendern eine PDF der gleichen Seite, aus der es aufgerufen wird?

Die Seite (index.blade.php)

<div class="event-links"> 
     <div class="panel panel-default"> 
      <!-- <a href="{{ URL::to('/events/create') }}"> --> 
      <a href="{{ action('[email protected]')}}"> 
        <div class="panel-heading">Generate PDF</div> 
      </a>     
     </div> 
    </div> 

    <div class="nametag-layout"> 
     <table class="table table-striped pagin-table table-bordered"> 
      <thead> 
       <tr> 
        <td>Mod Start Time</td> 
        <td>Mod End Time</td> 
        <td>Mod Description</td> 
       </tr> 
      </thead> 
      <tbody> 
      @foreach($mods as $key => $value) 
       <tr> 
        <td>{{ $value->mod_description }}</td> 
        <td>{{ $value->mod_start_time }}</td> 
        <td>{{ $value->mod_end_time }}</td> 
       </tr> 
      @endforeach 
      </tbody> 
     </table> 
    </div> 

und die Reglerfunktion (Platzhalter)

public function pdfgen() 
{ 
    $dompdf = new Dompdf(); 
    $dompdf->loadView('strawdogs.index'); 
    $dompdf->render(); 
    $dompdf->stream(); 
} 

}

Es gibt eine Taste auf meiner Seite ‚PDF generieren genannt 'und ich möchte, dass der Benutzer in der Lage ist, es zu drücken und eine PDF der Tabelle zu erhalten, die sich auf derselben Seite befindet. Im Moment habe ich es versucht und kann sehen, dass es Werte weitergibt, wenn Sie eine andere Seite aufrufen, aber es scheint nicht für die gleiche Seite zu tun.

Grundsätzlich gibt es eine Möglichkeit, dompdf auf der gleichen Seite aufzurufen, und wenn ja, wie kann ich das tun?

Antwort

0

Sie können eine neue Ansicht (pdf.blade.php) ohne die Taste machen erstellen. Wenn die Renderschaltfläche auf index.blade.php angeklickt wird, generieren Sie die PDF aus der pdf.blade.php.

PDF Seite (pdf.blade.php)

<div class="nametag-layout"> 
    <table class="table table-striped pagin-table table-bordered"> 
     <thead> 
      <tr> 
       <td>Mod Start Time</td> 
       <td>Mod End Time</td> 
       <td>Mod Description</td> 
      </tr> 
     </thead> 
     <tbody> 
     @foreach($mods as $key => $value) 
      <tr> 
       <td>{{ $value->mod_description }}</td> 
       <td>{{ $value->mod_start_time }}</td> 
       <td>{{ $value->mod_end_time }}</td> 
      </tr> 
     @endforeach 
     </tbody> 
    </table> 
</div> 

und die Reglerfunktion (Platzhalter)

public function pdfgen() 
{ 
    $dompdf = new Dompdf(); 
    $dompdf->loadView('strawdogs.pdf'); 
    $dompdf->render(); 
    $dompdf->stream(); 
} 
0

Auf Ihrem Controller müssen Sie die View-Methode aufrufen und Variablen mit compact senden und dann loadHtml() verwenden und die View-Methode als Parameter übergeben.

 $options = new Options(); 
     $options->set('defaultFont', 'DejaVu Sans'); 
     $dompdf = new Dompdf($options); 
     // instantiate and use the dompdf class 
     $html = view('pages.callsheet_view', compact(['request'],['number_of_no'])); 
     $dompdf->loadHtml($html,'UTF-8'); 


     $dompdf->render(); 
     $dompdf->stream(); 
Verwandte Themen