= Compilando a biblioteca PDFLib no Debian Lenny =
{{{
#!html
}}}
'''Índice'''
[[PageOutline(2-3,,inline)]]
{{{
#!html
}}}
A biblioteca [http://www.pdflib.com/ 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 [http://www.pdflib.com/products/pdflib-family/pdflib-lite/pdflib-lite-licensing/ 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 "[http://svn.softwarepublico.gov.br/trac/ieducar/wiki/Documentacao/Misc/1.X/InstalandoNoWindowsXP#InstalandoabibliotecaPDFLib 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 [http://www.pdflib.com/download/free-software/pdflib-lite/ 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) [http://pecl.php.net/package/pdflib 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.