Dompf永远负载laravel 4.2

时间:2017-10-15 23:46:55

标签: laravel pdf laravel-4 dompdf

我正在使用 dompf 尝试生成 pdf 并将其保存到存储文件夹和数据库,问题是当我尝试生成 pdf < / strong>,它从不加载,当我使用 github 中的示例代码时,它显示“test”,但是当我尝试加载视图时,它需要永远。这是我正在使用的代码

$pdf = PDF::loadView('emails.myView',$myData);
return $pdf->stream();

我尝试过使用downloadsave方法,但是没有工作,页面会永远加载但是从不生成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>&copy; 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。

1 个答案:

答案 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