Установка которая описана ниже для версии PHP 5.
Далее описано подробно как установить PDFlib на сервер Linux по управлением CPanel, а так же без проблем можно установить PDFlib если у вас нет WHM/CPanel.
1. Заходим на сервер по средством SSH
[/]# cd /usr/local/src/
2. Заходим на оф. сайт http://www.pdflib.com и скачиваем пакет PDFlib Lite
Качаем PDFlib Lite 7 для Linux системы
http://www.pdflib.com/download/pdflib-family/pdflib-lite-7/
На данные момент это PDFlib Lite 7.0.5
[/]# wget http://www.pdflib.com/binaries/PDFlib/705/PDFlib-Lite-7.0.5.tar.gz
3. Распаковываем и устанавливаем PDFlib Lite
[/]# tar xvzf PDFlib-Lite-7.0.5.tar.gz
[/]# cd PDFlib-Lite-7.0.5/
[/]# ./configure
[/]# make
[/]# make install
4. Устанавливаем расширение pdflib для PHP
[/]# pecl install pdflib
Когда у вас спросить, куда установить PDFlib (Path to PDFlib installation?)
указываем /usr/local/
[/]# Path to PDFlib installation? /usr/local/
Если при инсталляции выдало ошибку,
.....
checking whether the C compiler works... configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details.
ERROR: `/root/tmp/pear/pdflib/configure --with-pdflib=/usr/local/' failed
то не расстраивайтесь, тогда делаем так:
[/]# cd /root/tmp/pear/cache/
[/]# rm -rf pdflib-2.1.8/
*[/]# tar -zxvf pdflib-2.1.8.tgz
*[/]# cd pdflib-2.1.8/
*[/]# phpize
*[/]# ./configure --with-pdflib=/usr/local/
*[/]# make
*[/]# make install
или скачиваем с сервера PECL : http://pecl.php.net/package/pdflib
[/]# cd /usr/local/src/
[/]# wget http://pecl.php.net/get/pdflib-2.1.8.tgz
Как установить, написано чуть раннее
начиная с *[/]# tar -zxvf pdflib-2.1.8.tgz (помеченное звездочкой * )
.....
Процесс установки должен пройти без проблем.
5. Добавляем расширение pdf.so для PHP в ваш файл php.ini
Если вы не знаете где находится ваш php.ini файл, то смотрим путь так:
[/]# php -i | grep php.ini
[/]# Configuration File (php.ini) Path => /usr/local/lib
[/]# Loaded Configuration File => /usr/local/lib/php.ini
[/]# vi /usr/local/lib/php.ini
Где то в конце файла, где другие расширения, добавляем :
extension=pdf.so
Сохраняем файл :wq и перезапускам апачь (Apache)
[/]# service httpd restart
Если все прошло успешно то установка на этом закончена.
теперь проверяем.
6. Проверяем наличие PDFlib
[/]# php -i | grep PDF
[/]# PDF Support => enabled
[/]# PDFlib GmbH Version => 7.0.5
Если посмотреть через браузер, создать файл в выводом phpinfo
то будем видеть следующую картину
7. Тестовый пример работы библиотеки PDFLib
Примеры можете взять для теста с папки
[/]# /usr/local/src/PDFlib-Lite-7.0.5/bind/pdflib/php/examples.php5
т.е. там где был распакован архив PDFlib-Lite-7.0.5.tar.gz
Пример взят из файла hello.php
Обратите внимания! В начале строки кода PHP (примера ниже): не должно быть пустых строк и пробелов, т.е. код файла должен начинаться сразу с <?php ...., иначе не будет работать, ошибки типо "Warning: Cannot modify header information - headers already sent by (output ......"
<?php
/* $Id: hello.php,v 1.6.2.1 2008/04/06 17:55:03 rp Exp $
*
* PDFlib client: hello example in PHP
*/
try {
$p = new PDFlib();
# This means we must check return values of load_font() etc.
$p->set_parameter("errorpolicy", "return");
/* This line is required to avoid problems on Japanese systems */
$p->set_parameter("hypertextencoding", "winansi");
/* open new PDF file; insert a file name to create the PDF on disk */
if ($p->begin_document("", "") == 0) {
die("Error: " . $p->get_errmsg());
}
$p->set_info("Creator", "hello.php");
$p->set_info("Author", "Rainer Schaaf");
$p->set_info("Title", "Hello world (PHP)!");
$p->begin_page_ext(595, 842, "");
$font = $p->load_font("Helvetica-Bold", "winansi", "");
if ($font == 0) {
die("Error: " . $p->get_errmsg());
}
$p->setfont($font, 24.0);
$p->set_text_pos(50, 700);
$p->show("Hello world!");
$p->continue_text("(says PHP)");
$p->end_page_ext("");
$p->end_document("");
$buf = $p->get_buffer();
$len = strlen($buf);
header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=hello.pdf");
print $buf;
}
catch (PDFlibException $e) {
die("PDFlib exception occurred in hello sample:\n" .
"[" . $e->get_errnum() . "] " . $e->get_apiname() . ": " .
$e->get_errmsg() . "\n");
}
catch (Exception $e) {
die($e);
}
$p = 0;
?>
На кране будет PDF документ с текстом
Hello world!
(says PHP)