segunda-feira, 15 de outubro de 2012

Convertendo html em pdf


Recentemente  um cliente solicitou  a  criação de um classificado on-line
sendo que tivesse a opção de gerar um Jornal impresso no formato A3 modo
paisagem.
Para criar em uma ferramenta  gráfica como corel  ou pagemaker
seria fácil!!! mas o problema era   gerar o jornal apartir da página on-line,ou seja
converter o html em pdf já com configuração de impressão e layout do jornal.A partir daí iniciei  minha pesquisa sobre que API usar para converter as paginas em php para pdf e configurar o
 layout do jornal com CSS. Em meio as pesquisas testei algumas  opções e as que mais me agradaram foi a fpdf  e a   mpdf  sendo que optei pela segunda por ter um bom suporte a CSS.
O mpdf além de ser uma biblioteca  de fácil uso  tem uma excelente documentação e vários
exemplo de como utiliza-la faça download no site oficial
também não poderia deixar de sitar o excelente post de Digo Besson acesse aqui...que ilustra de maneira bem clara e didática, como utilizar o mpdf.
Bem diante desse post não ha necessidade de  eu escrever um passo a passo,seria redundante,
Contudo convém relatar dois recurso que precisei utilizar para resolver o problema de  página em branco. o primeiro foi  passar todo o html  para  utf8  utilizando a função utf8_encode($seuhtml).


outro problema que ocorreu era quando eu usava o html mesclado com php  ocorria vários bugs
a biblioteca não conseguia rederizar o código html que se encontrava na página php em muitos casos
imprimia tudo em branco,em outros não imprimia os valores das variáveis resultante da consulta do bd
a solução que encontre foi extraí o html  da página php a ser impressa e jogar em
uma variável. Segue o código para obter o html da página:


 $ch = curl_init();
 $timeout = 0;
 curl_setopt($ch, CURLOPT_URL, 'caminho/suapagina.php');
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
 $html = curl_exec ($ch);\\salvar o html  e  todas as consulta do bd e as regras de negócios
 curl_close($ch);

pronto agora é só usar a biblioteca para gerar o pdf


include('../mpdf.php');
$mpdf=new mPDF('C', array( 420,297),'','',3,3,2,2,0,0); //definir tamanho da pagina e as margens
$stylesheet = file_get_contents('style.css');//obter  o css externo !!!show de bola!!!
$mpdf->WriteHTML($stylesheet,1);//incluir o css na pagina pdf
$html = utf8_encode($html);
$mpdf->WriteHTML($html);
$mpdf->Output();
exit;//

repare que antes de  usar o mpdf  eu atribuo todo o html de uma pagina externa
em uma variável $html
só depois criu o objeto mpdf
carrego a folha de estilo
depois converto a váriável $html para utf8
e invoco o método $mpdf->WriteHTML($html);
pronto funfa direitinho.
essa API é bastante útil para criar os relatórios em formato pdf com php,visto que tem suporte a CSS,  e a tag img



bem pessoal,espero que esse post seja util

sábado, 6 de outubro de 2012

Sobre mim


Olá,tudo bem? meu nome é Ivan Amado,Trabalho como programador e sou formado em Sistema de Informação na UNIFACS. O objetivo desse blog  é... bem... ainda não  sei plenamente qual é o objetivo desse blog, mas o que eu posso adiantar é que tenho a intenção de partilhar as minhas experiencia e conhecimento adquirido tanto no campo profissional como no pessoal. Também tenho a  intenção de adquirir novos conhecimentos,por meio de cometários criticas elogios recomendações, conselhos(grátis),dicas em fim... o que rolar.