WKHTMLTOPDF (knplabs - snappy) не показывает ни верхний, ни нижний колонтитулы - PullRequest
0 голосов
/ 30 октября 2018

Я использую wkhtmltopdf для создания моих PDF-файлов. Я оставил поколение в покое на некоторое время, и по какой-то причине оно больше не генерирует верхний и нижний колонтитулы.

Вещи, которые я пробовал до сих пор (обновлю это, когда придет больше ответов):

  • Наличие тегов doctype, html, head и body для верхнего и нижнего колонтитула
  • Изменение путей к верхнему и нижнему колонтитулам на абсолютные пути (Даже при использовании полных абсолютных путей от диска вперед C: / xampp ... не работает.) Возможно, стоит указать, что изменение имени файла на то, что не существует, не выдает ошибку. Так что я не знаю, находит ли он файлы. Может, кто-нибудь подскажет мне хороший способ проверить это?

Это мой заголовочный файл :

<!DOCTYPE html>
<html>
<head>
    <title>PDF header</title>
    <style>
        html {
            display: block;
        }
        body {
            font-family: Calibri, "Segoe Ui Regular", sans-serif;
            letter-spacing: 0px;
        }
    </style>
</head>
<body style="padding-top: 30px">
    <img src="../../images/logo_extra.jpg" style="width: 100%;"/>
</body>
</html>

Это мой основной файл :

<?php 
session_start();

require __DIR__ . '/../vendor/autoload.php';

use Knp\Snappy\Pdf;
$pdf = new Pdf('pdf\wkhtmltopdf\bin\wkhtmltopdf');

header('Content-Type: application/pdf');
// header('Content-Disposition: attachment; filename="offerte.pdf"');

$pdf->setOption('header-html', 'pdf/header.html');
$pdf->setOption('footer-html', 'pdf/footer.html');
$pdf->setOption('load-error-handling','ignore');

// I know there is a 'cover' function in WKHTMLTOPDF
$file = file_get_contents('pdf/cover.php');

echo $pdf->getOutputFromHtml($file); 
?>

И, как всегда, пожалуйста: Дайте мне объяснение и, возможно, пример, но не просто кучу рабочего кода!

PS: Если вы видите какие-либо другие ошибки, пожалуйста, дайте мне знать.

1 Ответ

0 голосов
/ 31 октября 2018

wkhtmltopdf имеет проблему с заголовком / обложкой / нижним колонтитулом. Я не углубился в это очень глубоко, поскольку добавление полей действительно решило это для меня:

<?php 
session_start();

require __DIR__ . '/../vendor/autoload.php';

use Knp\Snappy\Pdf;
$pdf = new Pdf('pdf\wkhtmltopdf\bin\wkhtmltopdf');
header('Content-Type: application/pdf');

//just set margins
$pdf->setOption('margin-top', 20);
$pdf->setOption('margin-bottom', 15);
$pdf->setOption('margin-left', '0');
$pdf->setOption('margin-right', '0');

$pdf->setOption('header-html', 'pdf/header.html');
$pdf->setOption('footer-html', 'pdf/footer.html');
$pdf->setOption('load-error-handling','ignore');

$file = file_get_contents('pdf/cover.php');
echo $pdf->getOutputFromHtml($file); 
?>

Описание

Вторая проблема странная - несуществующее имя файла должно выдавать ошибку. Закомментируйте заголовок и попробуйте затем с неверным именем файла, snappys AbstractGenerator должен что-то сказать ...

...