Estou gerando arquivos pdf usando a classe dompdf.
Tudo vai bem. Exceto uma coisa: Os arquvos pdf's são gerados mas não sai os numeros das paginas.
Tipo assim: É um relatório de vendas. No arquivo pdf não esta paginado. Ou seja, desce aquela pagina extensa. Na hora de gerar o pdf ele tambem sai assim. Porem, preciso fazer com que cada pagina,não da paginação de resultados da consulta sql,mas sim pagina pdf gerada na conversão do php mostre seu numero. Por exemplo. A conversão gerou 10 paginas. Eu gostaria de mostrar :
1/10
2/10
...
Entenderam?
Pois é. Só que tem mais uma coisa: Caso eu precise imprimir em papel esse arquivo pdf, essa paginaçao tem que sair.
Como faço isso?
Segue o código que estou usando e grato a quem puder ajudar.
<?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") {
$msg="Deseja realmente excluir essa pedido?";
$icone = "<img border=0 src=../img/saiba_mais.png alt='Saiba Mais'>";
$cabecalho=$MySQL->Query("
select
c.nome, c.razaosocial, pc.preco_total, pc.data
from
pedidos_cliente pc
inner join clientes c on pc.id_cliente=c.id
where
pc.id_pedido_cliente=$id_do_pedido
");
list($nome_cli, $razao_cli, $preco_total, $data)=mysql_fetch_row($cabecalho);
$texto= "<table align=\"center\" border=\"1\" width=\"800\">
<tr>
<td align=\"center\" colspan=\"7\"><h3>Vizualização do Pedido</h3>
</td>
</tr>
<thead><tr>
<td align=\"center\"colspan=\"3\">Pedido nº: $id_do_pedido<br>
Cliente: $nome_cli$razao_cli
</td>
<td align=\"center\"colspan=\"4\">
Data do pedido: ".formata_data($data)."<br>
Valor Total do pedido: R$ ".number_format($preco_total, 2, '.', '')."
</td>
</tr>
<tr>
<td align=center>Lista</td>
<td align=center>Produto</td>
<td align=center>Qtde. na caixa</td>
<td align=center>Preço por<br>unidade na caixa</td>
<td align=center>Valor Unitário(R$:)</td>
<td align=center>Qtde</td>
<td align=center>Total:</td>
</tr></thead>
";
$lista_fornece = $MySQL->query("
SELECT
f.id,
concat( IFNULL(f.nome, ''), IFNULL (f.razaosocial , '' )),
concat( IFNULL(f.cpf, ''), IFNULL (f.cnpj , '' )),
pe.pgto_prazo,
pe.pgto_tipo,
pe.observa_cli
from
pedidos pe
inner join pedidos_cliente pc on pc.id_pedido_cliente=pe.ID_PEDIDO
inner join produtos p on pe.ID_PRODUTO=p.id
inner join grupos g on p.grupo=g.id_grupo
inner join fornecedores f on p.fornecedor=f.id
where
pc.id_pedido_cliente=$id_do_pedido
GROUP by
concat( IFNULL(f.nome, ''), IFNULL (f.razaosocial , '' ))
");
while(list($fornece_id, $fornecedor, $dcto, $pgto_tipo, $pgto_prazo, $observa_cli)=mysql_fetch_row($lista_fornece))
{
if(strlen($dcto)==11) {$dctovalor=formata_cpf($dcto); $dcto_tipo="CPF";}
if(strlen($dcto)==14) {$dctovalor=formata_cnpj($dcto); $dcto_tipo="CNPJ";}
$texto.= "<tr>
<td align=left colspan=3>Fornecedor: " . $fornecedor. " - ".$dcto_tipo."= ".$dctovalor."</td>
<td align=left colspan=4>";
if($pgto_tipo=="1")
{
$texto.= "Condição de pagamento escolhida: À Vista";
}
if($pgto_tipo=="2")
{
$texto.= "Condição de pagamento escolhida: À Prazo<br>";
$texto.= "Prazos para pagamento para produtos deste fornecedor:". $pgto_prazo;
}
$texto.= " </td>
</tr>";
$texto.= " <tr><td align=left colspan=7>";
$texto.= " Observação do cliente para o fornecedor: " . $observa_cli;
$texto.= " </td>
</tr>";
$lista = $MySQL->query("
select
p.foto,
p.nome,
f.nome,
f.razaosocial,
g.nome,
p.quantidadecaixa,
pe.preco_uni,
pe.quantidade,
pe.semi_total,
pc.preco_total,
pe.ID_LISTA,
pe.ID_PRODUTO
from
pedidos pe
inner join pedidos_cliente pc on pc.id_pedido_cliente=pe.ID_PEDIDO
inner join produtos p on pe.ID_PRODUTO=p.id
inner join grupos g on p.grupo=g.id_grupo
inner join fornecedores f on p.fornecedor=f.id
where
pc.id_pedido_cliente=$id_do_pedido and f.id=$fornece_id
order by
p.nome
");
$total_fornece=0.00;
while(list($foto, $produto_nome, $fornecedor_nome, $fornecedor_razao, $grupo, $quantidade_caixa, $preco_produto, $quantidade, $semitotal, $total, $lista_numero, $produto_numero)=mysql_fetch_row($lista))
{
include("../global/funcoes_php/foto_ver.php");
$total_fornece=$total_fornece+$semitotal;
$texto.= "<tr>
<td align=center>$lista_numero</td>
<td align=left>$produto_nome</td>
<td align=center>$quantidade_caixa</td>
<td align=right>R$ ". number_format($preco_produto/$quantidade_caixa, 2, '.', '')."</td>
<td align=right>R$ ". number_format($preco_produto, 2, '.', '')."</td>
<td align=center>$quantidade</td>
<td align=right>R$ ". number_format($semitotal, 2, '.', '')."</td>
</tr>
";
}
$texto.= "<tr><td align=center colspan=7>
Total de pedidos para este fornecedor: R$ ". number_format($total_fornece, 2, '.', '')."
</td></tr>";
}
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('legal', 'landscape');
$dompdf->render();
$dompdf->stream(".pdf/relatorio.pdf");
}
?>
</body>
</html>
Question
Carlos Rocha
Olá pessoal.
Estou gerando arquivos pdf usando a classe dompdf.
Tudo vai bem. Exceto uma coisa: Os arquvos pdf's são gerados mas não sai os numeros das paginas.
Tipo assim: É um relatório de vendas. No arquivo pdf não esta paginado. Ou seja, desce aquela pagina extensa. Na hora de gerar o pdf ele tambem sai assim. Porem, preciso fazer com que cada pagina,não da paginação de resultados da consulta sql,mas sim pagina pdf gerada na conversão do php mostre seu numero. Por exemplo. A conversão gerou 10 paginas. Eu gostaria de mostrar :
1/10
2/10
...
Entenderam?
Pois é. Só que tem mais uma coisa: Caso eu precise imprimir em papel esse arquivo pdf, essa paginaçao tem que sair.
Como faço isso?
Segue o código que estou usando e grato a quem puder ajudar.
Link to comment
Share on other sites
4 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.