Верхние и нижние колонтитулы PDF не отображаются с помощью wkhtmltopdf

Я использую laravel-snappy в своем проекте Laravel для создания PDF-файлов из шаблонов View. Этот пакет использует wkhtmltopdf.

Я пытаюсь установить некоторые верхние и нижние колонтитулы при создании PDF-файла в файле маршрутов следующим образом:

Route::get('/statement-of-fact', function () {
       $pdf = PDF::loadView('pdf.statement-of-fact');
       $footer = resource_path('views/pdf/statement-of-fact-footer.html');
       $pdf->setOption('footer-html', $footer);
       return $pdf->stream();
    })->name('statement-of-fact');

PDF генерируется нормально, но нижний колонтитул никогда не отображается.

Что я здесь делаю неправильно?

Мой HTML-файл:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>

  <div class="row">
    <div class="col-xs-12">

      Hello 
    </div>
  </div>
</body>
</html>

person user3574492    schedule 06.12.2016    source источник


Ответы (2)


Вы должны попытаться загрузить нижний колонтитул следующим образом:

$pdf = PDF::loadView('path.to.your.pdf.view');

$pdf->setOption('footer-html', view('path.to.your.footer'));

return $pdf->inline();

И в вашем config/snappy.php установите некоторые поля:

'pdf' => array(
    // ...
    'options' => array(
        'margin-top'    => 15,
        'margin-right'  => 10,
        'margin-bottom' => 15,
        'margin-left'   => 10,
    ),
),
person Artur Subotkevič    schedule 06.12.2016
comment
Пробовал это, все еще не отображает нижний колонтитул. - person user3574492; 06.12.2016
comment
Убедитесь, что ваши html-файлы верхнего/нижнего колонтитула содержат <!DOCTYPE html> - person Artur Subotkevič; 06.12.2016
comment
Запустите $pdf->setPaper('a4') и убедитесь, что у вас достаточно полей внизу и вверху, чтобы поместиться в ваши верхние/нижние колонтитулы. - person Artur Subotkevič; 06.12.2016
comment
Только что попробовал, та же проблема. Я удалил большую часть своего контента, чтобы посмотреть, связано ли это с пространством, но нижний колонтитул просто никогда не отображается. - person user3574492; 06.12.2016
comment
Убедитесь, что у вас достаточно полей в файле cionfig snappy.php: 'margin-top' => 15, 'margin-right' => 10, 'margin-bottom' => 15, 'margin-left' => 10 , - person Artur Subotkevič; 06.12.2016
comment
Что ж, даже если PDF-файл пуст, вам нужно добавить поля в конфигурацию, чтобы разместить верхний/нижний колонтитул. - person Artur Subotkevič; 06.12.2016
comment
Я добавил это в свой файл конфигурации spanny, но нижний колонтитул все еще не отображается. - person user3574492; 06.12.2016
comment
Не больше, на самом деле. Очень странно. - person Artur Subotkevič; 06.12.2016

On

$pdf->setOption('footer-html', $footer);

$footer должен быть маршрутом к нижнему колонтитулу, а не к пути нижнего колонтитула, поэтому это должно быть что-то вроде

Route::get('pdf-footer', function(){
    return view('nova::pdf-partials.footer');
})->name('pdf.footer');

а также

$pdf->setOption('footer-html', route('pdf.footer'));

ref

person Prafulla Kumar Sahu    schedule 26.07.2019