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.
Assinar:
Postagens (Atom)
