= 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.