首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多页pdf使用barryvdh dompdf Laravel-4和loadView而不是loadHtml

多页pdf使用barryvdh dompdf Laravel-4和loadView而不是loadHtml
EN

Stack Overflow用户
提问于 2014-09-02 02:26:25
回答 2查看 9.2K关注 0票数 1

我正在尝试创建批量的pdf发票(使用:barryvdh/laravel-dompdf),可以下载和打印。通过电子邮件发送发票很容易,因为'send‘命令在循环中可以很好地工作,并将附加当前创建的pdf,但是$pdf-> download ()需要一个返回响应--我尝试在不使用" return“的情况下下载会得到一条错误消息,"return”当然会中断循环。因为我的发票很复杂,所以我用

代码语言:javascript
复制
    $pdf->loadView('invoices.show',$data);

使用视图创建发票,而不是尝试在控制器中写入所有的html。我可以把所有的发票合并成一个多页的pdf。我知道使用css style=“分页后”创建不同页面的诀窍,但是当我使用loadView发送特定于页面的$data而不是loadHtml时,我不知道该怎么做-- loadView总是导致只包含最后一张发票。

例如,控制器:

代码语言:javascript
复制
public function invoices()
{
    $pdf = App:make('dompdf');
    for($i=0; $i<4; $i++) {
    $data = array('i'=>$i);
    }
$pdf->loadView('invoices.show',$data);
return $pdf->download("Invoice");
}

(我在这里的示例$data数组中只包含了一个变量;真正的发票显然有很多$data变量。)

视图,包装在:

代码语言:javascript
复制
<div style="page-break-after:always;">

仅退货,其中发票编号= $i

代码语言:javascript
复制
Invoice #3

当然,将$pdf->loadView放入循环中也会做同样的事情。由于$pdf不是字符串,因此尝试使用$pdf .=之类的东西...在循环中不起作用。

谢谢你的建议。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-09 01:09:32

正如我所发现的,答案是简单地将任何需要的循环放在视图中,而不是放在控制器中。这很好用。

票数 0
EN

Stack Overflow用户

发布于 2016-09-17 07:25:14

我们需要生成一个多页的PDF文件,在laravel 5和刀片模板。

在这篇文章中,我们找到了dompdf如何创建文档的解决方案:convert multiple html to pdf

我的解决方案:我创建了两个刀片模板,container.blade和content.blade。首先,我将数据从我的控制器发送到content.blade的foreach循环中

代码语言:javascript
复制
loop...

view2 = View::make('contentview', compact('data'))->render();
$viewfinal = $viewfinal.$view2;

..endloop

$viewfinal是从刀片模板生成头部和主体的所有html代码的串联。最后:

代码语言:javascript
复制
$view = View::make('containerview', compact('viewfinal'))->render();

containerview.blade,只有这个:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
{!! $viewfinal !!}
</html>

和content.blade生成带有"head“和"body”的页面,但不是"html“标记,每个页面对应一个:

代码语言:javascript
复制
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>


<title>Multiples pages</title>

<link rel="stylesheet" type="text/css" href="assets/css/impresion1.css">
 </head><body> ...........</body>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25611240

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档