如何使用 Laravel Snappy PDF 在 PDF 上显示动态页脚值

问题描述

我有一个 exams 数组,其中每个 exam 都有将要接受它的 namestudent

我正在使用 Laravel 包 Snappy PDF 来打印这些考试,并在 Blade 模板 内执行 @foreach 循环以显示 questions 和 其他信息。

在每个 student/exam 的末尾,我跳转页面(所以,我从来没有在同一页面中有两个 students),就像这样:

@foreach($students as $student)
    <p>Student: $student['name']</p>
    <p>Questions:</p> 
    @foreach($student['questions'] as $question)
        . . . 
    @endforeach
    <div style="page-break-after: always"></div>
@endforeach

我想在 PDF 的每个 footer显示一个 page,并显示考试学生的姓名。我不想在每次考试中显示一个页脚,而是每页显示一个页脚,并带有正确的学生姓名(单个考试可以有多个页面)。

我所知道的显示此类页脚的唯一方法是使用 SnappyPDF 的 setoption 函数,如下所示:

->setoption("footer-right","Page [page] from [topage]")

有一种方法可以在第二个参数中运行 PHP 代码,例如

->setoption("footer-right",'Student: {{$some_variable}}')

我可以在哪里更改模板 $some_variable 中的 @foreach 值,例如使用 @PHP 标签

类似于:

@foreach($students as $student)
    ...
    @PHP
      $some_variable = $student['name'];
    @endPHP
@endforeach

通过这样做,我可以在所有 PDF 页脚中显示正确的学生姓名。

但不幸的是,setoption 似乎从不运行 PHP 代码,它只是在其中设置了一个静态 HTML 模板,不能动态更改。

有没有办法使用 HTML 或 SnappyPDF 包显示这些页脚?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)