Скачиваем библиотеку здесь и размещаем ее в своем проекте. Указываем путь к ней при подключении в PHP фале.
Вот так:
include_once __DIR__ . '/dompdf/autoload.inc.php';
Конструкция подключения и формирования PDF файла:
Пример:
$html = 'ТУТ HTML РАЗМЕТКА, КОТОРАЯ БУДЕТ ВЫВОДИТСЯ'
include_once __DIR__ . '/dompdf/autoload.inc.php';
$dompdf = new Dompdf\Dompdf();
$dompdf->set_option('isRemoteEnabled', TRUE);
$dompdf->setPaper('A4', 'portrait');
$dompdf->loadHtml($html, 'UTF-8');
$dompdf->render();
// Вывод файла в браузер:
$dompdf->stream('schet');
// Или сохранение на сервере:
$pdf = $dompdf->output();
file_put_contents(__DIR__ . '/schet.pdf', $pdf);
Небольшой пример, который был сделан мной для сайта по продаже билетов, из которого будет понятно что и как делается. Создаем массив, и затем выводим этот массив циклом в PDF.
Пример:
<?php
$reserv_seat = $pages->find('template=purchased_tickets, id_bus=' . $selected_id_bus . ', date_depart=' . $selected_date . ',sort=seat');
//echo '<pre>'; print_r($arr_reserv_seat); echo '</pre>';
$arr_reserv_seat = [];
foreach ($reserv_seat as $reserv_seat_item) {
$arr_reserv_seat[] = array(
'seat' => $reserv_seat_item->seat,
'pay_or_booking' => $reserv_seat_item->pay_or_booking,
'confirm' => $reserv_seat_item->confirm,
"id_passenger"=>$reserv_seat_item->id_passenger,
'passenger' => $reserv_seat_item->passenger,
'passenger_doc' => $reserv_seat_item->passenger_doc,
'operator' => $reserv_seat_item->operator,
);
}
// echo '<pre>';
// print_r($arr_reserv_seat);
// echo '</pre>';
$reestr_seat = '
<style type="text/css">
* {
/*font-family: Helvetica, sans-serif;*/
font-family: "DejaVu Sans", sans-serif;
}
</style>
<h3>Реестр занятых мест по маршруту<br>' . $selected_bus . '<br>' . $selected_date . ' ' . $selected_time . '<h3>';
foreach ($arr_reserv_seat as $key => $val) {
$reestr_seat .= '
<p class="reestr_seat_item">Место - ' . $val['seat'] . ' - ' . $val['pay_or_booking'] . '<br>' . $val['passenger'] . '</p>';
}
include_once __DIR__ . '/dompdf/autoload.inc.php';
$dompdf = new Dompdf\Dompdf();
$dompdf->set_option('isRemoteEnabled', TRUE);
$dompdf->setPaper('A4', 'portrait');
$dompdf->loadHtml($reestr_seat, 'UTF-8');
$dompdf->render();
// Вывод файла в браузер:
$dompdf->stream('Для водителя - ' . $selected_bus . ' - ' . $selected_date . ' ' . $selected_time . '');
?>
Этими строками мы добавляем кириллицу в PDF если будут проблемы.
Для кириллицы добавляем:
<style type="text/css">
* {
/*font-family: Helvetica, sans-serif;*/
font-family: "DejaVu Sans", sans-serif;
}
</style>