PDF с нуля Никита Кислицин Хакер, номер #073, стр. 073-116-3 А сейчас давай я расскажу, как осуществляется создание pdf-документа и его базовое форматирование. После того как мы подключили код класса fpdf, надо создать новый объект и зарегистрировать несколько используемых шрифтов: $pdf = new FPDF(); $pdf-> Open(); $pdf-> AddFont('TimesNewRomanPSMT','','times.php'); $pdf-> SetFont('TimesNewRomanPSMT','',12); Функция AddFont регистрирует шрифт в списке используемых. Ее первый аргумент определяет название шрифта, оно должно совпадать с тем, что находится в файле описания. Там оно хранится в переменной $name. Второй аргумент задает форматирование текста: B - bold, I - italic и IB - смешанный. Если аргумент не указан, шрифт используется обычный. Третий аргумент функции – это РНР-файл описания шрифта, который мы с тобой недавно создавали. После регистрации шрифта функцией AddFont надо определить его размер для использования на странице, это делает метод SetFont(). Этот метод можно вызывать несколько раз в скрипте, в то время как AddFont вызывается для каждого скрипта только однажды. После всех проделанных манипуляций можно уже создавать тело документа. Я сначала все написал в обычном скрипте, а потом посмотрел, как это делают нормальные люди: они создают специальный класс, который наследует у FPDF. Это вносит некоторые упрощения, вот тебе пример такого класса: Пример функции, рисующей заголовок документа в нашем классе pdf.class.php class pArt extends FPDF { function top($title,$image,$author) { $this-> Image($image,6,6,40,20); #Рисуем классное лого $this-> SetFont('TimesNewRomanPSMT','',18); #Шрифт для заголовка $this-> Cell(210,4,$title,0,0,'C'); #Выводим прямоугольник с текстом $this-> Ln(); #Перевод строки $this-> SetFont('TimesNewRomanPSMT','B',12); #Шрифт поменьше $this-> Cell(250,20,$author,0,0,'R',1); $this-> Ln(); } } Несложно видеть, что в моем классе pArt описан только один метод с именем top. Он генерирует заголовок для документа – как ты понимаешь, в нашем примере здесь будет размещено лого, название статьи, автор и прочая лабуда. В общем-то, я там все прокомментировал, так что вряд ли у тебя будут проблемы. Расскажу лучше о базовых функциях вроде Cell и Image. Как ты мог заметить, первая функция рисует прямоугольник с текстом внутри. Хотя может нарисовать и без текста, это уже как ты захочешь. Более того, прямоугольник можно залить определенным текстом и сделать границу непрозрачной. Формат у метода такой: |