FPDF – Урок 2: Заголовок, подвал, разрыв страницы и изображение

Из предыдущего Урока (FPDF – Урок 1: Простой пример) мы научились Выводить Hello World!, и разобрали самые основы основ создания PDF Документов. Теперь пора перейти к следующему уроку, в котором будет объяснены некоторые моменты о Заголовке, подвале, о разрыве страницы, и вкратце о том как добавлять изображения в наш документ.

Ниже приведен код примера, в котором две страницы с заголовком(Верхний колонтитул), подвалом(Нижний колонтитул) и логотипом:

require('Fpdf\fpdf.php');
 
class PDF extends FPDF
{
//Заголовок страницы
function Header()
{
//Логотип
$this->Image('logo_pb.png',10,8,33);
//шрифт Arial, жирный, размер 15
$this->SetFont('Arial','B',15);
//Перемещаемся вправо
$this->Cell(80);
//Название
$this->Cell(30,10,'Title',1,0,'C');
//Разрыв строки
$this->Ln(20);
}
 
//Подвал страницы
function Footer()
{
//Позиция на 1,5 cm от нижнего края страницы
$this->SetY(-15);
//Шрифт Arial, курсив, размер 8
$this->SetFont('Arial','I',8);
//Номер страницы
$this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
}
}
 
//Теперь будем пользоваться унаследованным от FPDF классом PDF 
$pdf=new PDF();
$pdf->AliasNbPages();
$pdf->AddPage();
$pdf->SetFont('Times','',12);
for($i=1;$i<=40;$i++)
$pdf->Cell(0,10,'Printing line number '.$i,0,1);
$pdf->Output();

Этот пример использует методы Header () и Footer () для обработки верхних и нижних колонтитулов (заголовка и подвала). Header () – Вызывается автоматически методом AddPage(), поэтому его не нужно вызывать из приложения, но если Вы захотите управлять этим выводом то нужно его переписать. Footer () – Ситуация с этим методом аналогичная с методом Header (), но данный метод будет вызываться автоматически методами AddPage() и Close().

Логотип выводится с помощью метода Image (), который принимает следующие параметры – адрес вставляемого изображения, координаты верхнего левого угла, и ширина изображения. Высота изображения вычисляется автоматически и при этом соблюдаются пропорции изображения.

Чтобы вывести номер страницы, нулевое значение передается как ширина ячейки. Это означает, что ячейка должна продлиться до правого края страницы, это удобно, чтобы текст располагался в центре документа. Текущий номер страницы возвращают метод PageNo (), а что касается общего числа страниц, оно получается с помощью специального значения {nb} которое будет заменено на общее количество страниц (при условии что Вы вызвали метод AliasNbPages ()). Обратите внимание на использование метода SetY (), который позволяет задавать позицию в абсолютном месте на странице, начиная с верхней или нижней границы.

Другая интересная особенность используется при автоматическом разрыве страницы. Как только ячейка будет пересекать предел в страницы на 2 см от нижнего края (значение по умолчанию), разрыв не производится и шрифт остается таким же. Хоть и для Колонтитула выбран свой собственный шрифт Arial, тело документа продолжает использовать Times. Этот механизм автоматического восстановления распространяется также на цвета и ширину линии. Предел, который может вызывать разрывы страниц, можно установить с помощью метода SetAutoPageBreak (), который принимает следующие параметры – включать или выключать режим автоматического разрыва страниц, расстояние от низа страницы (которое задает предел).

Результат Урока 2: Заголовок, подвал, разрыв страницы и изображение :

FPDF - Урок 2: Заголовок, подвал, разрыв страницы и изображение

FPDF - Урок 2: Заголовок, подвал, разрыв страницы и изображение

В следующем уроке можно будет узнать как правильно перенести строки и можно будет научиться управлению цветом по всему документу – FPDF – Урок 3: Переносы строк и работа с цветом.

Ссылки:

Я надеюсь что все перевел правильно и понятно, если что обращайтесь за помощью к мануалу.

(Visited 145 times, 2 visits today)