首页 > 解决方案 > 在 PDF Laravel 中获取错误未定义偏移量 -1

问题描述

我正在尝试使用 mpdf 库在 Laravel 中生成 PDF,一些 pdf 工作正常,但在一些 pdf 中我收到错误

消息:“未定义的偏移量:-1”,异常:“ErrorException”,...} 异常:“ErrorException”文件:“/var/www/html/vendor/mpdf/mpdf/src/Tag/BlockTag.php”行:118消息:“未定义的偏移量:-1”跟踪:[{file:“/var/www/html/vendor/mpdf/mpdf/src/Tag/BlockTag.php”,行:118,函数:“handleError”,...} ,…]

public function generatePDF(Request $request)
{
    try
    {
        $courtName = $request->name;
        $id = $request->id;
        
        $data = ModelName::functionName($id); 
        $pdf = PDF::loadView('pages.secondary-PDF', compact('data',$data));
        return $pdf->download('my.pdf');
    }
    catch(\Exception $ex)
    {
        return $ex->getMessage();

    }    
} 

上面我用来生成 PDF 的代码。我只在某些 PDF 中收到此错误,而不是全部。请帮我解决一下这个。

下面是我的视图代码。

   <!DOCTYPE html>
<html>
<head>
    <title>{{$data->FileName}}</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" />
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
  <link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">


</head>
<style type="text/css" media="all">
    @page {
    header: page-header;
    footer: page-footer;
}

@page{
    header:page-header;
    margin-top:105t;
}

@page{
    footer:page-footer;
    margin-top: 50pt;
}

</style>

<body>

    <htmlpageheader name="page-header">
        <p style="text-align: center; border-bottom: 1px solid #000; padding-bottom: 1px; font-size: 14px; font-weight: normal;">{{$data->FileName}}</p>
    </htmlpageheader>
    <br>
    @if(!Session::has('UserId'))
    <htmlpagefooter name="page-footer">
        <div style="border-top: 1px solid #000;">
          <img style="margin-top:10px;" height="30" width="90" src="{{asset('images/lq-logo.png')}}" alt="footer">
          <p style="margin-left: 450px; margin-top:-30px; color:#000; font-size: 13px;"><b>Printed For: {{ date("d-m-Y",strtotime(\Carbon\Carbon::now()->toDateString())) }} On: {{date('h:i:A')}}</b></p>
        </div>
    </htmlpagefooter>
    @else
    <htmlpagefooter name="page-footer">
        <div style="border-top: 1px solid #000;">
           <img style="margin-top:10px;" height="30" wdth="90" src="{{asset('images/lq-logo.png')}}" alt="footer">
           <p style="margin-left: 300px; margin-top:-30px; color:#000; font-size: 13px;"><b>Printed For: {{Session::get('UserName')}}&nbsp;{{ date("d-m-Y",strtotime(\Carbon\Carbon::now()->toDateString())) }} On: {{date('h:i:A')}}</b></p>
        <div>
    </htmlpagefooter>
    @endif
    

    <div style="text-align: justify;"> 
          {!! $data->Content !!}
    </div><br>

</body>

</html>

非常感谢你。

标签: phplaravelmpdf

解决方案


推荐阅读