Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom dia pessoal ,
Estou em um projeto na empresa de enviar o boleto daqui de uma forma automática pro e-mail dos clientes. O fato é que o layout e o boleto já estão funcionando perfeitamente.
O único problema é que, na hora de eu transformar o boleto para pdf de uma forma automática, ele dá o seguinte erro:
"Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\siclop-enviar_boleto\funcoes_itau.php:114) in C:\wamp\www\siclop-enviar_boleto\pdf\mpdf.php on line 8297"
"Warning: Cannot modify header information - headers already sent by (output started at C:\wamp\www\siclop-enviar_boleto\funcoes_itau.php:114) in C:\wamp\www\siclop-enviar_boleto\pdf\mpdf.php on line 1706"
Estou usando o mPDF e esse erro só acontece quando eu chamo a função de gerar o código de barras. Quando eu não chamo essa função, ele me mostra o pdf formatado porém obviamente não me mostra o código de barras (somente a linha digitável).
Não sei por que ele não entende o código de barras. Eu vi que no próprio mPDF tem uma classe chamada barcode.php; não sei se ele aceita o código de barras somente utilizando essa classe...
Gostaria de saber se vocês podem me ajudar com esse erro ou se tem alguma sugestão de como eu posso estar fazendo essa conversão para pdf?
o código da função de geração de código de barras é esse:
function fbarcode($valor){
$fino = 1 ;
$largo = 3 ;
$altura = 50 ;
$barcodes[0] = "00110" ;
$barcodes[1] = "10001" ;
$barcodes[2] = "01001" ;
$barcodes[3] = "11000" ;
$barcodes[4] = "00101" ;
$barcodes[5] = "10100" ;
$barcodes[6] = "01100" ;
$barcodes[7] = "00011" ;
$barcodes[8] = "10010" ;
$barcodes[9] = "01010" ;
for($f1=9;$f1>=0;$f1--){
for($f2=9;$f2>=0;$f2--){
$f = ($f1 * 10) + $f2 ;
$texto = "" ;
for($i=1;$i<6;$i++){
$texto .= substr($barcodes[$f1],($i-1),1) . substr($barcodes[$f2],($i-1),1);
}
$barcodes[$f] = $texto;
}
}
//Desenho da barra
//Guarda inicial
?><img src=img/p.png width=<?php echo $fino?> height=<?php echo $altura?> border=0><img
src=img/b.png width=<?php echo $fino?> height=<?php echo $altura?> border=0><img
src=img/p.png width=<?php echo $fino?> height=<?php echo $altura?> border=0><img
src=img/b.png width=<?php echo $fino?> height=<?php echo $altura?> border=0><img
<?php
$texto = $valor ;
if((strlen($texto) % 2) <> 0){
$texto = "0" . $texto;
}
// Draw dos dados
while (strlen($texto) > 0) {
$i = round(esquerda($texto,2));
$texto = direita($texto,strlen($texto)-2);
$f = $barcodes[$i];
for($i=1;$i<11;$i+=2){
if (substr($f,($i-1),1) == "0") {
$f1 = $fino ;
}else{
$f1 = $largo ;
}
?>
src=img/p.png width=<?php echo $f1?> height=<?php echo $altura?> border=0><img
<?php
if (substr($f,$i,1) == "0") {
$f2 = $fino ;
}else{
$f2 = $largo ;
}
?> src=img/b.png width=<?php echo $f2?> height=<?php echo $altura?> border=0><img
<?php
}
}
// Draw guarda final
?>src=img/p.png width=<?php echo $largo?> height=<?php echo $altura?> border=0><img
src=img/b.png width=<?php echo $fino?> height=<?php echo $altura?> border=0><img
src=img/p.png width=<?php echo 1?> height=<?php echo $altura?> border=0>
<?php
} //Fim da função código de barras
Obrigado !
a linha 114 é o fechamento da tag img
" src=img/p.png width=<?php echo $f1?> height=<?php echo $altura?> border=0><img "
Antes desse fechamento, ele tem 2 laços para verificar se a barra será "larga" ou "fina".
Nossa cara, desculpa falar, mas muito estranho esse seu método :D
Mas vamos lá...
primeira coisa.. pq vc não coloca as TAGs abrindo e finalizando na mesma linha?
Substituir isso:
**src=img/p.png width=<?php echo $f1?> height=<?php echo $altura?> border=0><img**
por isso:
**<img src=img/p.png width=<?php echo $f1?> height=<?php echo $altura?> border=0>**
Aconselho tb vc colocar ' ou " nos atributos..
**<img src="img/p.png" width="<?php echo $f1?>" height="<?php echo $altura?>" border="0">**
Verifica os valor do $f1 e da $altura.. para ver se está jogando valor correto ali dentro...
Eu faço isso, pois o valor que da variável f1 depende do que está no laço..
o código é esse:
<img
<?php
$texto = $valor ;
if((strlen($texto) % 2) <> 0){
$texto = "0" . $texto;
}
// Draw dos dados
while (strlen($texto) > 0) {
$i = round(esquerda($texto,2));
$texto = direita($texto,strlen($texto)-2);
$f = $barcodes[$i];
for($i=1;$i<11;$i+=2){
if (substr($f,($i-1),1) == "0") {
$f1 = $fino ;
}else{
$f1 = $largo ;
}
?>
src=img/p.png width=<?php echo $f1?> height=<?php echo $altura?> border=0>
Por isso que eu só fecho depois, o while e o for tem que está dentro da tag img para conseguir pegar o valor correto da variável f1.
Mas eu não costumo fazer isso, meu código é todo indentado, somente essa parte que não.
Oke está escrito na linha 114 da funcoes_itau.php ????