2015-07-02 1 views
0

Я использую Laravel 5 для создания формы для склада. В основной форме вы можете выбрать, какие элементы получить, и он должен сгенерировать PDF-файл с элементами (вся информация), людьми, чтобы получить элементы, дату и номер счета-фактуры.DOMPDF Laravel 5 Интерактивная страница

Вся информация находится на DIV, называемом «счет-фактура». Как я могу отправить этот объект в новое представление для создания PDF-файла. Я читал о «вызове dompdf через сеть», чтобы сделать его более интерактивным, но документация недостаточно ясна или не соответствует мне. Это мой текущий код: От: enter image description here Recibo.js

$('#createPDF').click(function() 
     { 
      $htmlData = "data"; 
      $_token = $('[name="_token"]').val(); 
      $.get('recibos/pdf',{ html:$htmlData, _token: $_token }) 
       .done(function(data) 
       { 
        console.log('Done PDF!'); 
       }); 
     }); 

ReciboController.php

public function reciboPDF(Request $request) 
    { 
     $data = $request->get('html'); 
     $pdf = \PDF::loadView('create.template.formReciboPDF',compact('data'))->setPaper('letter')->setOrientation('landscape'); 
     return $pdf->stream(); 
     //return view('create.template.formReciboPDF'); 
    } 

formReciboPDF.blade.php

<tr> 
<td>{{$data}}</td> 
<td>Papeleria</td> 
<td>Unidad</td> 
<td>Grande</td> 
<td>La Palma</td> 
<td>2342423424234</td> 
<td>Bueno</td> 
<td>9</td> 
</tr> 

ответ

1

Вместо того чтобы пытаться захватить HTML, вы можете отправить параметры выбора на сервер и переустановить страницу? Тогда вам просто нужно будет подавать сгенерированный HTML в dompdf и рендеринг. Если визуальный внешний вид важен, вы можете использовать скрытые флажки в качестве механизма выбора.

Если вы хотите использовать ярлык, вы можете получить с помощью jQuery.contents().

Во второй части похоже, что вы пытаетесь отправить свой запрос через AJAX и получить обратно PDF. Хотя это technically possible, это больше проблем, чем того стоит. Более простой альтернативой было бы отправить скрытую форму в пустое окно. Это потребует незначительных изменений в вашем HTML/JS, но немного больше, например.

$('#createPDF').click(
 
    function() { 
 
    $('#html').val($('#invoice').content()); 
 
    $(this).closest('form').submit(); 
 
    });
<form method="POST" action="recibos/pdf" target="_blank"> 
 
    <input type="hidden" name="html" id="html" value="" /> 
 
    <input type="hidden" name="_token" value="{value from server}" /> 
 
    <button type="button" id="createPDF">Create PDF</button> 
 
</form>