Формируем отчет в PDF на PHP

Скачиваем библиотеку здесь и размещаем ее в своем проекте. Указываем путь к ней при подключении в 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>

 

Так же с моим портфолио можно ознакомиться на любой из представленной социальной сети, на своих страницах я публикую посты о своих работах, заданиях и целях.

Для связи со мной можно воспользоваться любой социальной сетью,
или написать на почту:

С моим резюме можно ознакомиться по ссылке:

© 2020-2024 Портфолио Юдина Александра г.Пенза. Все права защищены