我正在使用Laravel 5为仓库生成表单。在主表单中,您可以选择要获取的项目,并且应该生成包含项目(所有信息)的PDF,获取项目的人员,日期和发票编号。
所有信息都在名为“发票”的DIV上。如何将此对象发送到新视图以生成PDF。我读到了“通过web调用dompdf”以使其更具交互性,但文档不够清晰或不符合我的需要。 这是我目前的代码: 发件人: 的 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>
答案 0 :(得分:1)
您可以将选择参数发送到服务器并重新构建页面,而不是尝试捕获HTML吗?然后你只需要将生成的HTML提供给dompdf并渲染。如果视觉外观很重要,您可以使用隐藏的复选框作为选择机制。
如果您想使用快捷方式,可以使用jQuery.contents()
捕获HTML。
在您的第二部分中,您似乎正在尝试通过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>