Carcleo 4 Denunciar post Postado Julho 28, 2011 Olá pessoal. Tenho o código abaixo que transforma uma pagina html (gerada por php) em pdf. Esta funcinando direitinho. Estou usando o dompdf Porem, eu gostaria de colocar, no pdf, um cabeçalho e um rodapé mas não achei nada do dompdf sobre cabeçalho e rodapé na net. Gostaria que voces me ajudassem. Segue meu código: <?php ob_start(); session_start(); header('Content-Type: text/html; charset=utf-8'); include("../global/config/const.php"); include("../global/config/conexao.php"); include("../global/funcoes_php/formata_cep.php"); include("../global/funcoes_php/formata_tel.php"); include("../global/funcoes_php/formata_cpf.php"); include("../global/funcoes_php/formata_cnpj.php"); include("../global/funcoes_php/formata_data.php"); ?> <html> <head> <title><?=$titulo_admin;?></title> <link href="../global/config/stilo.css" rel="stylesheet" type="text/css"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> </head> <?php if ($acao == "gerapdf") { $consulta_fornecedor=" SELECT razaosocial, nome FROM fornecedores WHERE id=$id "; list($FORNECEDOR_RAZAOSOCIAL,$FORNECEDOR_NOME) = mysql_fetch_row($MySQL->query($consulta_fornecedor)); $texto= "<table width=\"95%\" border=\"1\" align=\"center\"> <tr><td colspan=\"4\" align=\"center\"> RELATÓRIO ANALÍTICO DE PEDIDOS FORNECEDOR $FORNECEDOR_RAZAOSOCIAL$FORNECEDOR_NOME </td></tr> "; $texto.= "<tr><td colspan=\"4\" align=\"left\">DATA: ".formata_data($data_relatorio)."</td></tr>"; $consulta_cliente=" SELECT DISTINCT(pc.id_cliente),cl.razaosocial, cl.nome FROM pedidos_cliente pc INNER JOIN pedidos pe ON pe.ID_PEDIDO = pc.id_pedido_cliente INNER JOIN produtos pd ON pd.id = pe.ID_PRODUTO INNER JOIN fornecedores fd ON fd.id = pd.fornecedor INNER JOIN clientes cl ON cl.id = pc.id_cliente WHERE fd.id = $id and pc.data = '$data_relatorio' ORDER BY cl.nome, cl.razaosocial "; $texto.= "<tr> <td align=\"center\" width=\"40%\">NOME DO PRODUTO</td> <td align=\"center\" width=\"20%\">QUANTIDADE</td> <td align=\"center\" width=\"20%\">PRECO UNITÁRIO</td> <td align=\"center\" width=\"20%\">SEMI TOTAL</td> </tr> "; $consulta_cliente_query = $MySQL->query($consulta_cliente); while(list($cliente,$CLIENTE_RAZAOSOCIAL,$CLIENTE_NOME) = mysql_fetch_row($consulta_cliente_query)) { $texto.= "<tr><td colspan=\"4\" align=\"left\">$CLIENTE_RAZAOSOCIAL$CLIENTE_NOME</td></tr>"; $consulta_itens=" SELECT pd.nome, pe.quantidade, pe.preco_uni, pe.semi_total FROM pedidos pe INNER JOIN produtos pd ON pd.id=pe.ID_PRODUTO INNER JOIN fornecedores fd ON fd.id=pd.fornecedor INNER JOIN pedidos_cliente pc ON pc.id_pedido_cliente=pe.ID_PEDIDO INNER JOIN clientes cl ON cl.id=pc.id_cliente WHERE fd.id = $id and pc.data = '$data_relatorio' and pc.id_cliente=$cliente ORDER BY pe.ID_PRODUTO "; $SUB_TOTAL=0.00; $consulta_itens_query = $MySQL->query($consulta_itens); while(list( $PRODUTO_NOME, $QUANTIDADE, $PRECO_UNI, $SEMI_TOTAL ) = mysql_fetch_row($consulta_itens_query)) { $SUB_TOTAL+=$SEMI_TOTAL; $texto.= "<tr> <td align=\"left\" width=\"40%\">$PRODUTO_NOME</td> <td align=\"center\" width=\"20%\">$QUANTIDADE</td> <td align=\"right\" width=\"20%\">R$ ".number_format($PRECO_UNI, 2, '.', '')."</td> <td align=\"right\" width=\"20%\">R$ ".number_format($SEMI_TOTAL, 2, '.', '')."</td> </tr> "; } $texto.= "<tr><td align=\"center\" colspan=\"4\">Total do Cliente na data: R$ ".number_format($SUB_TOTAL, 2, '.', '')."</td></tr>"; $TOTAL_GERAL+=$SUB_TOTAL; } $TOTAL_FORNECE+=$TOTAL_GERAL; $texto.= "<tr><td align=\"center\" colspan=\"4\">Total do Fornecedor na data: R$ ".number_format($TOTAL_FORNECE, 2, '.', '')."</td></tr>"; $texto.= "</table>"; require_once("../global/funcoes_php/dompdf/dompdf_config.inc.php"); $dompdf = new DOMPDF(); $html = iconv("utf-8","iso-8859-1",$texto); $dompdf->load_html($html); $dompdf->set_paper('letter', 'landscape'); $dompdf->render(); $dompdf->stream("pdf/relatorio.pdf"); } ?> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
André Severino 3 Denunciar post Postado Julho 28, 2011 Não entendi muito bem, você queria adicionar o cabeçalho e o rodapé pelo proprio dompdf ? Pois você também poderia inserir uma tabela com uma imagem no topo e no rodapé para simular o cabeçalho e o rodapé Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Julho 28, 2011 Sim André. Boa tarde! Pelo próprio dompdf. Pois a cada pdf gerado, o título será diferente. Tipo Relatório do Fornecedor A Em outro pdf Tipo Relatório do Fornecedor A Entendeu? Compartilhar este post Link para o post Compartilhar em outros sites
André Severino 3 Denunciar post Postado Julho 28, 2011 Então, esses dados não estão vindo do banco de dados ... Você poderia criar uma <thead> e da um height="100" por exemplo na coluna e insira o nome do fornecedor lá dentro :thumbsup: Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Julho 28, 2011 André. Sim Mas como e onde eu colocaria isso no meu código? Voce viu como esta simples meu código? Compartilhar este post Link para o post Compartilhar em outros sites
André Severino 3 Denunciar post Postado Julho 28, 2011 Aqui voce criaria o banner :P list($FORNECEDOR_RAZAOSOCIAL,$FORNECEDOR_NOME) = mysql_fetch_row($MySQL->query($consulta_fornecedor)); $texto= "<table width=\"95%\" border=\"1\" align=\"center\"> <tr><td colspan=\"4\" align=\"center\">RELATÓRIO ANALÍTICO DE PEDIDOS FORNECEDOR $FORNECEDOR_RAZAOSOCIAL$FORNECEDOR_NOME </td></tr>"; $texto.= "<tr><td colspan=\"4\" align=\"left\">DATA: ".formata_data($data_relatorio)."</td></tr>"; Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Julho 28, 2011 Mas o meu codigo ja esta assim! Queria saber como fazer esse <thead> que você esta me ensinando? A ideia é que esse cabeçalho e rodapé saia em todas as paginas. Compartilhar este post Link para o post Compartilhar em outros sites
André Severino 3 Denunciar post Postado Julho 28, 2011 Então Carcleo, é html isso... é o topo da tabela thead/tbody/tfooter Voce adiciona isso ali no codigo que postei, afinal é ali que você faz a consulta do html <table> <thead> <tr> <th height="40">Nome do fornecedor 1</th> </tr> </thead> Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Julho 28, 2011 Dúvida: Seria isso? $texto= "<table width=\"95%\" border=\"1\" align=\"center\"> <thead> <tr><td colspan=\"4\" align=\"center\"> RELATÓRIO ANALÍTICO DE PEDIDOS FORNECEDOR $FORNECEDOR_RAZAOSOCIAL$FORNECEDOR_NOME </td></tr> <tr><td colspan=\"4\" align=\"left\">DATA: ".formata_data($data_relatorio)."</td></tr> </thead> "; Isso colocaria um cabeçalho e rodapé no pdf em todas as paginas? A pergunta é porque realmente eu não sei. Ok? Vou criar um relatório com duas paginas para testar aqui. Por enquanto obrigado. André. Valeu mesmo. Deu certo. Ficou assim: (quem sabe ajuda alguem né?) <?php ob_start(); session_start(); header('Content-Type: text/html; charset=utf-8'); include("../global/config/const.php"); include("../global/config/conexao.php"); include("../global/funcoes_php/formata_cep.php"); include("../global/funcoes_php/formata_tel.php"); include("../global/funcoes_php/formata_cpf.php"); include("../global/funcoes_php/formata_cnpj.php"); include("../global/funcoes_php/formata_data.php"); ?> <html> <head> <title><?=$titulo_admin;?></title> <link href="../global/config/stilo.css" rel="stylesheet" type="text/css"> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> </head> <?php if ($acao == "gerapdf") { $consulta_fornecedor=" SELECT razaosocial, nome FROM fornecedores WHERE id=$id "; list($FORNECEDOR_RAZAOSOCIAL,$FORNECEDOR_NOME) = mysql_fetch_row($MySQL->query($consulta_fornecedor)); $texto= "<table width=\"95%\" border=\"1\" align=\"center\"> <thead> <tr><td colspan=\"4\" align=\"center\"> <font color=\"#666666\">RELATÓRIO ANALÍTICO DE PEDIDOS FORNECEDOR $FORNECEDOR_RAZAOSOCIAL$FORNECEDOR_NOME </font> </td></tr> <tr><td colspan=\"4\" align=\"left\"><font color=\"#666666\">DATA: ".formata_data($data_relatorio)."</font></td></tr> </thead> "; $consulta_cliente=" SELECT DISTINCT(pc.id_cliente),cl.razaosocial, cl.nome FROM pedidos_cliente pc INNER JOIN pedidos pe ON pe.ID_PEDIDO = pc.id_pedido_cliente INNER JOIN produtos pd ON pd.id = pe.ID_PRODUTO INNER JOIN fornecedores fd ON fd.id = pd.fornecedor INNER JOIN clientes cl ON cl.id = pc.id_cliente WHERE fd.id = $id and pc.data = '$data_relatorio' ORDER BY cl.nome, cl.razaosocial "; $texto.= "<tr> <td align=\"center\" width=\"40%\">NOME DO PRODUTO</td> <td align=\"center\" width=\"20%\">QUANTIDADE</td> <td align=\"center\" width=\"20%\">PRECO UNITÁRIO</td> <td align=\"center\" width=\"20%\">SEMI TOTAL</td> </tr> "; $consulta_cliente_query = $MySQL->query($consulta_cliente); while(list($cliente,$CLIENTE_RAZAOSOCIAL,$CLIENTE_NOME) = mysql_fetch_row($consulta_cliente_query)) { $texto.= "<tr><td colspan=\"4\" align=\"left\">$CLIENTE_RAZAOSOCIAL$CLIENTE_NOME</td></tr>"; $consulta_itens=" SELECT pd.nome, pe.quantidade, pe.preco_uni, pe.semi_total FROM pedidos pe INNER JOIN produtos pd ON pd.id=pe.ID_PRODUTO INNER JOIN fornecedores fd ON fd.id=pd.fornecedor INNER JOIN pedidos_cliente pc ON pc.id_pedido_cliente=pe.ID_PEDIDO INNER JOIN clientes cl ON cl.id=pc.id_cliente WHERE fd.id = $id and pc.data = '$data_relatorio' and pc.id_cliente=$cliente ORDER BY pe.ID_PRODUTO "; $SUB_TOTAL=0.00; $consulta_itens_query = $MySQL->query($consulta_itens); while(list( $PRODUTO_NOME, $QUANTIDADE, $PRECO_UNI, $SEMI_TOTAL ) = mysql_fetch_row($consulta_itens_query)) { $SUB_TOTAL+=$SEMI_TOTAL; $texto.= "<tr> <td align=\"left\" width=\"40%\">$PRODUTO_NOME</td> <td align=\"center\" width=\"20%\">$QUANTIDADE</td> <td align=\"right\" width=\"20%\">R$ ".number_format($PRECO_UNI, 2, '.', '')."</td> <td align=\"right\" width=\"20%\">R$ ".number_format($SEMI_TOTAL, 2, '.', '')."</td> </tr> "; } $texto.= "<tr><td align=\"center\" colspan=\"4\">Total do Cliente na data: R$ ".number_format($SUB_TOTAL, 2, '.', '')."</td></tr>"; $TOTAL_GERAL+=$SUB_TOTAL; } $TOTAL_FORNECE+=$TOTAL_GERAL; $texto.= "<tr><td align=\"center\" colspan=\"4\">Total do Fornecedor na data: R$ ".number_format($TOTAL_FORNECE, 2, '.', '')."</td></tr>"; $texto.= "<table width=\"95%\" border=\"1\" align=\"center\"> <tfoot> <tr><td colspan=\"4\" align=\"center\"> <font color=\"#666666\">RELATÓRIO ANALÍTICO DE PEDIDOS FORNECEDOR $FORNECEDOR_RAZAOSOCIAL$FORNECEDOR_NOME </font> </td></tr> <tr><td colspan=\"4\" align=\"left\"><font color=\"#666666\">DATA: ".formata_data($data_relatorio)."</font></td></tr> </tfoot> "; $texto.= "</table>"; require_once("../global/funcoes_php/dompdf/dompdf_config.inc.php"); $dompdf = new DOMPDF(); $html = iconv("utf-8","iso-8859-1",$texto); $dompdf->load_html($html); $dompdf->set_paper('letter', 'landscape'); $dompdf->render(); $dompdf->stream("pdf/relatorio.pdf"); } ?> </body> </html> Compartilhar este post Link para o post Compartilhar em outros sites
André Severino 3 Denunciar post Postado Agosto 1, 2011 Isso ae mesmo brother :thumbsup: Então se você quiser pode até definir um height="100" (exemplo) assim fica um topo de 100px :P Compartilhar este post Link para o post Compartilhar em outros sites