我正在使用 dompf 尝试生成 pdf 并将其保存到存储文件夹和数据库,问题是当我尝试生成 pdf < / strong>,它从不加载,当我使用 github 中的示例代码时,它显示“test”,但是当我尝试加载视图时,它需要永远。这是我正在使用的代码
$pdf = PDF::loadView('emails.myView',$myData);
return $pdf->stream();
我尝试过使用download
和save
方法,但是没有工作,页面会永远加载但是从不生成pdf。
并且视图只显示带有1个主调用$hist
的4或6个元素,返回视图时没有问题。
<style type="text/css">
Bunch of css.
</style>
<table class="center-block">
<tr>
<td colspan="3">
<img src="{{ asset('images/boletin/btn_cabeza.jpg') }}" class="img-responsive center-block">
</td>
</tr>
<tr>
<td rowspan="4" class="aside">
<a href="{{ URL::to('contacto/donaciones') }}">
<img src="{{ asset('images/boletin/btn_dona.jpg') }}" class="img-responsive center-block" >
</a>
<div class="social-container">
<h3>Siguenos en:</h3>
<hr>
<ul>
<li><a href="https://twitter.com/fundaepekeina"><i class="fa fa-twitter"></i></a></li>
<li><a href="http://fundaepekeina.org"><i class="fa fa-instagram"></i></a></li>
<li><a href="https://www.facebook.com/funda.epekeina"><i class="fa fa-facebook"></i></a></li>
<li><a href="https://www.youtube.com/user/fundaepekeina"><i class="fa fa-youtube-play"></i></a></li>
</ul>
</div>
<h2 class="text-blue">Historias Epékeinas</h2>
<br>
@if(count($hist->imagenes) > 0)
<img src="{{ asset('images/news/'.$hist->imagenes->first()->image) }}" class="img-responsive img-boletin" alt="{{ $hist->titles->first()->text }}">
@endif
<div class="bg-green padding-20">
<h2 class="boletin-title">
{{ $hist->titles->first()->text }}
@if(!is_null($hist->subtitle))
{{ $hist->subtitle->titles->first()->text }}
@endif
</h2>
</div>
<hr>
<div class="text-justify">
{{ substr(strip_tags($hist->descriptions->first()->text), 0, 1600) }}[...]
<br>
<a href="{{ URL::to('quienes-somos/historias-epekeinas/'.$hist->slugs->first()->text) }}" class="pull-right">Leer más</a>
</div>
</td>
</tr>
<?php $k = 0;?>
@foreach($article as $a)
@if($k == 0 || $k%2 == 0)
<tr>
@endif
@if(!empty($principal))
@if($a->slugs->first()->text != $principal->id)
<td class="news fixedHeight bg-{{ $colors[$j] }}">
@if(count($a->imagenes) > 0)
<img src="{{ asset('images/news/'.$a->imagenes->first()->image) }}" class="img-responsive center-block img-boletin" alt="{{ $a->titles->first()->text }}">
@else
<img src="{{ asset('images/logo.png') }}" class="img-responsive center-block img-boletin" alt="{{ $a->titles->first()->text }}">
@endif
<h2 class="boletin-title">{{ $a->titles->first()->text }}</h2>
<p class="text-justify">{{ substr(strip_tags($a->descriptions->first()->text), 0, 300) }} [...]</p>
<a target="_blank" href="{{ URL::to('noticias/'.$a->slugs->first()->text) }}" class="btn btn-default btn-xs pull-right">Leer más</a>
<div class="clearfix"></div>
</td>
<?php $k++; ?>
@endif
@else
<td class="news fixedHeight bg-{{ $colors[$j] }}">
@if(count($a->imagenes) > 0)
<img src="{{ asset('images/news/'.$a->imagenes->first()->image) }}" class="img-responsive center-block img-boletin" alt="{{ $a->titles->first()->text }}">
@else
<img src="{{ asset('images/logo.png') }}" class="img-responsive center-block img-boletin" alt="{{ $a->titles->first()->text }}">
@endif
<h2 class="boletin-title">{{ $a->titles->first()->text }}</h2>
<p class="text-justify">{{ substr(strip_tags($a->descriptions->first()->text), 0, 300) }} [...]</p>
<a target="_blank" href="{{ URL::to('noticias/'.$a->slugs->first()->text) }}" class="btn btn-default btn-xs pull-right">Leer más</a>
<div class="clearfix"></div>
</td>
<?php $k++; ?>
@endif
<?php $j++; ?>
@if($j == 4)
<?php $j=0; ?>
@endif
@if(($k != 0 && $k%2 == 0) || $k == count($article))
</tr>
@endif
@endforeach
<tr>
<td colspan="3" class="text-center">
<h3>© Derechos Reservados Funda Epékeina 2016.</h3>
</td>
</tr>
</table>
<div class="container center-block">
<div class="bg-square bg-blue"></div>
<div class="bg-square bg-yellow"></div>
<div class="bg-square bg-green"></div>
<div class="bg-square bg-pink"></div>
</div>
<div class="clearfix"></div>
什么可能是错的?是否还有其他选择来生成pdf。
答案 0 :(得分:0)
按顺序检查这些点:
对于Laravel 4. *我建议你使用这个DOMPDF包装器https://github.com/barryvdh/laravel-dompdf/tree/0.4
也许你的视图试图将内容呈现在页面之外,尝试添加dinamic分页符,你可以通过使用page-break-before设置元素来设置:always;或分页后:总是。尝试删除foreach并添加1或2个静态元素,将其呈现在一个页面中
通过使用return View::make('emails.myView',$myData)->render();
在html中呈现错误来检查视图中的错误。
检查php和html sintax,如果有一些html标签,dompdf不起作用
不太好关闭
考虑使用Knra-snappy库进行Laravel https://github.com/barryvdh/laravel-snappy/tree/0.1