Я использую dompdf для создания файла PDF из HTML-страницы.
Контроллер:
public function downloadPdfByDriveUserId($_drive, $driveId, $userId, CampusConnectServices\CampusConnectHelper $campusConnectHelper)
{
$response = //some array I fetch for helper.
//Configure Dompdf.
$pdfOptions = new Options();
$pdfOptions->set('defaultFont', 'Arial');
$dompdf = new Dompdf($pdfOptions);
$html = $this->renderView('download_pdf/index.html.twig', [
'title' => "Download Admint-Card",
'response' => $response,
]);
$dompdf->loadHtml($html);
$dompdf->setPaper('A4', 'portrait');
$dompdf->render();
//Output the generated PDF to Browser (force download)
$dompdf->stream("AdmitCard.pdf", [
"Attachment" => false,
]);
}
HTML:
{% extends 'base.html.twig' %}
{% block title %}Download Admit-card{% endblock %}
{% block body %}
<div class="example-wrapper">
<h1>
{{ title }}
</h1>
<h3>Details:</h3>
<ul>
<li>
Event Date :
{{ response['eventDate']|date('d/m/Y - H:i:s') }}
</li>
{% if ((response['driveStartTime'] is defined)or(response['driveEndTime'] is defined)) %}
<li>
Slot Time :
{{ response['driveStartTime']|date('H:i:s') }}
-
{{ response['driveEndTime']|date('H:i:s') }}
</li>
{% endif %}
<li>Student Name :{{ response.name }}</li>
<li>Email :{{ response.email }}</li>
<li>Collage :{{ response['college'] }}</li>
<li>Contact :{{ response['contactNumber'] }}</li>
<li>Roll Number :{{ response['rollNumber'] }}</li>
</ul>
</div>
{% endblock %}
Выше кода генерирует PDF-файл, в котором я получаю свою HTML-страницу на своей первой странице.
СгенерированныйФайл PDF содержит 9 страниц, из которых 8 пустые. Я не хочу вставлять эти 8 пустых страниц в мой файл PDF, который будет загружен. Как установить количество страниц, которые нужно добавить?