Home Page do Portal
Brasil, um país de todos

Compilando a biblioteca PDFLib no Debian Lenny

Índice

  1. Compilação
  2. Integrando a biblioteca no PHP
  3. Throubleshooting

A biblioteca PDFLib é um dos requisitos para a instalação do i-Educar. É através desta biblioteca que todos os arquivos em formato PDF são gerados pela aplicação.

Esta biblioteca está disponível em duas versões distintas: a commercial (denominada apenas PDFLib) e a free software (denominada PDFLib Lite). A PDFLib Lite possui um subconjunto das funcionalidades da PDFLib e seu código fonte é distribuído para uso nos sistemas operacionais Linux/Unix, Windows e Mac OS X. Para as necessidades do i-Educar, as funcionalidades da PDFLib Lite são suficientes.

Para uso comercial, deve-se observar as restrições impostas pela licença da biblioteca.

Esse guia é baseado no Debian Lenny. Os mesmos passos deverão funcionar no Ubuntu e outros sistemas baseados na distro Debian. Todos os passos devem ser realizados com o usuário root ou com o uso do comando sudo.

Usuários Windows devem seguir as instruções disponíveis na seção "instalando a biblioteca PDFLib" do guia de instalação para o SO.

Compilação

Como apenas o código fonte da biblioteca PDFLib Lite é distribuído, é necessário que este seja compilado. Os utilitários necessários para isso são o make e o GNU C++ Compiler (g++). Para instalá-los, use o aptitude:

# aptitude install make g++ 

Feito isso, faça o download do código fonte da biblioteca PDFLib Lite para Linux. Seguindo as convenções, iremos fazer o download no diretório /usr/src:

# cd /usr/src
# wget http://www.pdflib.com/binaries/PDFlib/704/PDFlib-Lite-7.0.4p4.tar.gz
# tar -xzvf PDFlib-Lite-7.0.4.tar.gz
# cd PDFlib-Lite-7.0.4

O processo de compilação não passa do uso dos utilitários configure e make:

# ./configure --without-java --without-perl --without-py --without-ruby --without-tcl --without-PLOP --without-PCOS --without-TET --without-CL

O sumário do comando deverá apresentar o seguinte ao final:

For your convenience, here's a summary of configure's results:

Support for shared libraries:           yes
C++ language binding for PDFlib:        yes
Java language binding for PDFlib:       no
Perl language binding for PDFlib:       no
Python language binding for PDFlib:     no
Ruby language binding for PDFlib:       no
Tcl language binding for PDFlib:        no
PDF import library (PDI):               no
Large file support:                     yes
     Note: if you purchase the additional PDF import library (PDI)
     you can also manipulate existing PDF documents with PDFlib.
     The additional block feature can be used to personalize PDF.
     See http://www.pdflib.com for details.

Please observe the licensing terms for commercial PDFlib usage.
PDFlib license agreement and purchase order can be found in the doc directory.

Esse comando configure está desabilitando o suporte para os bindings Java, Perl, Python e Ruby assim como os produtos PLOP, pCOS e TET da PDFLib Gmbh. As opções completas do configure podem ser obtidas com ./configure --help.

Para testar o configure antes da compilação, use o make test, após isso, execute o make install:

# make
# make test
# make install

Por padrão, a biblioteca será compilada para uso compartilhado em /usr/local/lib/:

# ls -lh /usr/local/lib/
total 11M
-rw-r--r-- 1 root staff 6,5M Set  8 14:52 libpdf.a
-rw-r--r-- 1 root staff  789 Set  8 14:52 libpdf.la
lrwxrwxrwx 1 root staff   15 Set  8 14:52 libpdf.so -> libpdf.so.6.0.4
lrwxrwxrwx 1 root staff   15 Set  8 14:52 libpdf.so.6 -> libpdf.so.6.0.4
-rw-r--r-- 1 root staff 4,1M Set  8 14:52 libpdf.so.6.0.4

Integrando a biblioteca no PHP

Para integrar a biblioteca PDFLib Lite no PHP, é necessário instalar a extensão PECL (PHP Extension Community Library) pdflib. A instalação de extensões PECL é bastante simples pois usa-se o mesmo sistema de empacotamento do PEAR (PHP Extension and Application Repository).

Para ter o utilitário pecl instalado, é necessário instalar o pacote php5-dev.

# pecl install pdflib

O PECL irá fazer o download do pacote e perguntará qual o local em que a biblioteca foi instalada. Informe /usr/local:

# path to pdflib installation? : /usr/local

Ao final da compilação da extensão PECL, a seguinte mensagem aparecerá:

Build process completed successfully
Installing '/usr/lib/php5/20060613+lfs/pdf.so'
install ok: channel://pecl.php.net/pdflib-2.1.7

Pronto! A biblioteca PDFLib foi instalada e já está adicionada no seu arquivo php.ini. Reinicie o Apache e acesse o arquivo info.php (geralmente http://localhost/ieducar/info.php). Procure por pdf:

http://farm3.static.flickr.com/2427/3980519703_c2cb11ecfc_o.png

Throubleshooting

Caso o seu arquivo info.php não liste a biblioteca PDFLib como instalada, procure em seu arquivo php.ini a seguinte linha:

extension=pdf.so

Caso a linha não esteja no arquivo, adicione-a e reinicie o Apache. Recarregue a página do info.php e procure por pdf novamente.