Ниже опубликован перевод заметки Creating Pdf files using Zend Framework Zend_Pdf component. В ней доступно и кратко описано базовое использование компонента Zend_Pdf.
Zend Framework содержит компонент Zend_Pdf, предназначенный для создания pdf-файлов. Этот компонент очень прост в использовании. Сейчас я расскажу, как же его использовать.
Прежде всего, инстанцируем Zend_Pdf:
1 | $pdf = new Zend_Pdf(); |
Если вы хотите открыть существующий pdf-файл и изменить его, используйте следующий код:
1 |
Для сохранения файла используйте следующий код:
1 |
Для обновления существующего файла напишите:
1 |
Или вы можете вывести файл в браузер:
1 | $pdf->render(); |
Добавление страницы в pdf-файл:
1 | $pdf->pages[] = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_LETTER); |
или
1 | $pdf->pages[] = $pdf->newPage(Zend_Pdf_Page::SIZE_A4); |
Удаление страницы из документа:
1 |
В случае написания текста на странице вам понадобится следующий код:
1 | $page=$pdf->pages[0]; |
Таким образом мы получаем первую страницу
1 2 3 4 5 6 7 8 9 10 | $style = new Zend_Pdf_Style(); $style->setLineColor(new Zend_Pdf_Color_Rgb(0,0,0)); $font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_TIMES); $style->setFont($font,12); $page->setStyle($style); $page->drawText(‘example text here’,100,($page->getHeight()-100)); |
Прежде всего, мы получаем первую страницу нашего документа. После этого мы инстанцируем Zend_Pdf_Style и указываем цвет текста, который мы будем использовать. При помощи класса Zend_Pdf_Font мы выбираем стиль шрифта.
И нам остаётся только написать сам текст на странице.
Это всё. Просто, не правда ли?
OldFornit says:
Доброго.
3 февраля 2009, 11:27А как можно побороть проблему с кодировками при генерации pdf-ок?
Snowcore says:
Не понравилась статья – все в разброс и никакой конкретики.
29 апреля 2009, 13:58Лучше все это рассмотреть на примере создания конкретного PDF документа (step by step)
Alexey says:
Рассматривая данную статью я обратил внимание на несколько нюансов:
- при публикации статей лучше указывать к какой версии фреймфорка относится статья,
- при практический реализации в условиях кириллицы стоило бы сделать пример не с английским текстом, а с русским.
В дополнение к статье:
Пример использования Zend_Pdf для русского языка.
1. Подготовка
В корневой папке приложения создайте подкаталог /fonts
Скопируйте в каталог приложения /fonts необходимые Вам в pdf файле шрифты : arial.ttf, cour.ttf
2. Текст примера, отображающего русский PDF (без использования Zend_Application) занесите в файл index.php:
pages[] = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
$mypage=$mypdf->pages['0'];
$style=new Zend_Pdf_Style();
$style->setLineColor(new Zend_Pdf_Color_Rgb(0,0,0));
$font=Zend_Pdf_Font::fontWithPath(‘./fonts/arial.ttf’); // Определили шрифт Ариал
$style->setFont($font,14); // 14-й шрифт
$mypage->setStyle($style);
$mypage->drawText(‘Простой PDF с русским текстом’,100,($mypage->getHeight()-100));
$font1=Zend_Pdf_Font::fontWithPath(‘./fonts/cour.ttf’); // Определили шрифт Courier
$style->setFont($font1,9); // Определили размер 9
$mypage->setStyle($style);
$mypage->drawText(‘Русский текст в рамке для отображения в отчете’,20,110);
$mypage->drawRectangle(10,10,400,120,Zend_Pdf_Page::SHAPE_DRAW_STROKE);
// Показываем его в браузере
header(‘Content-type: application/pdf’);
echo $mypdf->render();
Удачи!!!
21 сентября 2009, 0:10Alexey says:
еще раз текст примера
// Демонстрация использования Zend_Pdf компонента
require_once ‘Zend/Pdf.php’; //Включили класс PDF
$mypdf=new Zend_Pdf(); // Создали инстанцию PDF документа
$mypdf->pages[] = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
$mypage=$mypdf->pages['0'];
$style=new Zend_Pdf_Style();
$style->setLineColor(new Zend_Pdf_Color_Rgb(0,0,0));
$font=Zend_Pdf_Font::fontWithPath(‘./fonts/arial.ttf’); // Определили шрифт Ариал
$style->setFont($font,14); // 14-й шрифт
$mypage->setStyle($style);
$mypage->drawText(‘Простой PDF с русским текстом’,100,($mypage->getHeight()-100));
$font1=Zend_Pdf_Font::fontWithPath(‘./fonts/cour.ttf’); // Определили шрифт Courier
$style->setFont($font1,9); // Определили размер 9
$mypage->setStyle($style);
$mypage->drawText(‘Русский текст в рамке для отображения в отчете’,20,110);
$mypage->drawRectangle(10,10,400,120,Zend_Pdf_Page::SHAPE_DRAW_STROKE);
// Показываем его в браузере
header(‘Content-type: application/pdf’);
echo $mypdf->render();
21 сентября 2009, 0:11