boletophp icon indicating copy to clipboard operation
boletophp copied to clipboard

Códigos de barras imprimindo errado no Chrome

Open paulop opened this issue 8 years ago • 41 comments

Olá Pessoal, O Chrome está imprimindo errado os códigos de barras e as tabelas dos boletos, o html do boleto está saindo corretamente, mas quando aperto Crtl+p para imprimir ele fica todo estranho e faltando partes.

imagem do html print html

imagem da caixa de impressão. print caixa de impressao

está acontecendo com meus clientes, por enquanto estou pedindo para usarem a linha digitável. Já estou a algum tempo tentando arrumar, alguém já viu esse erro? isso é só no Chrome, no Mozilla e no IE está correto.

paulop avatar Jan 10 '17 20:01 paulop

Está acontecendo igual comigo, alguém já conseguiu corrigir? Agradeço.

globalwebsites avatar Jan 11 '17 13:01 globalwebsites

Isso provavelmente é alguma falha no Chrome pois ele obtém o html da página em questão para gerar o preview para ser impresso e ao fazer isso deve ocorrer algum error.

amarborto avatar Jan 16 '17 18:01 amarborto

Companheiro tenta ver se no script o diretório para as imagens e para os css estão corretos.

Outra coisa notei que vc esta gerando um boleto na modalidade antiga SEM REGISTRO essa modalidade esta depreciada esta sendo extinta so sera possível usar na modalidade REGISTRADA.....

Se precisar de ajudar mim informa ....

ronaldsena avatar Jan 24 '17 11:01 ronaldsena

Olá Ronald, esse ai é o checkout padrão do repositório, só fiz checkout e abri o boleto de exemplo.

No seu navegador está funcionando corretamente?

paulop avatar Jan 24 '17 11:01 paulop

Sim no meu navegador esta funcionado perfeitamente porem para cobrança simples estou adaptando o código para fazer a cobrança registrada a qual sera a unica valida quando eu modifiquei para os paramentos da registrada quebrou o código de barras estou nesse momento fazendo testes com a leitura do codigo de barras ...

ronaldsena avatar Jan 24 '17 11:01 ronaldsena

Eu já fiz a homologação pela CAIXA e o que realmente muda no código de barras

O nosso número passou de 240000000000000000 para 14000000000000000-0 bastou mudar o inicio de 2 para 1 e um traço do dígito

É preciso adicionar uma linha com o endereço do cedente ou no recibo ou na ficha de compensação. Os campos Espécie Doc, Aceite e Carteira são obrigatórios. Local de pagamento deve conter: PREFERENCIALMENTE NAS CASAS LOTÉRICAS ATÉ O VALOR LIMITE

E no final das contas a remessa continua sendo opcional.

O problema está sendo a impressão no Chrome mesmo. Acho que está na hora de refazer com html5 esse layout. Quando tiver tempo vou fazer.

Firefox

image

E no Chrome cheio de falhas

image

paulop avatar Jan 24 '17 11:01 paulop

Encontrei esses tópicos

http://stackoverflow.com/questions/29282488/erroneous-table-border-displays-in-chrome-only-confirmed-bug

http://stackoverflow.com/questions/25591499/chrome-bug-with-colspan-and-border

Vou verificar se as correções funcionam.

paulop avatar Jan 24 '17 12:01 paulop

Realmente tem um ERRO GRAVE

  • **Abaixo

segue a visualização antes da impressão no 2 navegadores:** barcode

  • **Agora

veja a pre visualização da impressão pelo CHROMES: esta cheio de lacunas** erro_print

  • **A

versão que to usando do chromes é:** versaor_chrome

ronaldsena avatar Jan 24 '17 12:01 ronaldsena

Acho que este erro ocorre no visualizador de PDF do Chrome. Ao gerar o boleto pelo IE e Imprimir para PDF, o código de barras se mantem correto (se visualizado no IE). Ao abrir o mesmo arquivo PDF no Chrome, aparece tudo errado.

rafaelpatro avatar Jan 26 '17 01:01 rafaelpatro

Exato fiz testes com os 3 principais navegadores

Internet Explore - OK Mozilla Firefox --- OK Chrome -------- Doente

Na hora que abre na tela do Chrome o código de barras e mostrado corretamente após o Crtl+P ou após aperta o botão imprimir que abre uma tela de pré-visualização da impressão já e mostrado nessa tela o código de barras quebrado e analisando um pouco o código ele e baseado em 2 imagens que são uma Barra PRETA e uma Barra BRANCA onde as duas tem o FINO e o LARGO que equivale a LARGURA da imagens com isso e gerado o código de barras. Aparentemente o problema esta na BARRA PRETA com o estilo FINO essa é a barra que não esta sendo impressa .....

Provavelmente deve ser algo que se possa corrigir com CSS especifico para o Chrome....

No momento estou focado no arquivo de remessa que já esta quase pronto quando eu finalizar vou dar uma olhada para tenta resolver.

ronaldsena avatar Jan 27 '17 12:01 ronaldsena

Alguma novidade desse problema? tentei de varias formas, inclusive dando margin ao invés de usar barra branca, mas nada funciona mesmo

scorninpc avatar Feb 06 '17 13:02 scorninpc

Sei que foge do projeto, mas se assim como eu, alguém mais precisar de uma solução rápida pra isso, fiz um commit de uma saída rápida para o problema

https://github.com/agenciageneral/codigo_barras_i25_boleto

scorninpc avatar Feb 06 '17 16:02 scorninpc

Parece que a melhor opção é converter em imagem mesmo obrigado @scorninpc

paulop avatar Feb 16 '17 12:02 paulop

Alguém conseguiu resolver? Não consegui fazer o código recomendado pelo @scorninpc funcionar. Carreguei o projeto diretamente do Aziz, mas mesmo o demo dele não roda aqui (dá como se a imagem estivesse quebrada). Alguém pode me dar uma mão?

patrickmacedo avatar Mar 10 '17 21:03 patrickmacedo

@patrickmacedo, no arquivo boleto_barcode.php, remova a ultima linha com a função header(), e veja se está dando algum erro ou algum warning, esses erros podem quebrar a imagem. Se estiver, desative a exibição de error

scorninpc avatar Mar 13 '17 11:03 scorninpc

Opa, obrigado pela ideia, @scorninpc . Usei o conceito com o código original do rapaz e depois de definir as variáveis (este estava sendo o erro) funcionou tranquilo. Muito obrigado 👍

patrickmacedo avatar Mar 16 '17 14:03 patrickmacedo

@scorninpc muito obrigado por sua ajuda e colaboração compartilhando a sua dica de como resolver o problema da visualização do código de barras conforme comentado aqui. Sua solução funcionou perfeitamente e já está me ajudando muito aqui. Obrigado e parabéns!

alexandre890 avatar Apr 02 '17 11:04 alexandre890

Opa tudo bem por aí, então eu tava tentando aplicar a correção de emergência do @scorninpc mas não consegui, ele dá erro de ( ! ) Warning: Cannot modify header information - headers already sent. Como eu posso arrumar isso aí gente?

Além disso aparece umas coisas estranhas: �PNG IHDR2f�iePLTE������IDAT�c��][�IEND�B

Alguém tem ideia do que seja?

ghost avatar Jun 21 '17 14:06 ghost

Vc vai precisar debugar o código, deve estar aparecendo algum warning antes.

paulop avatar Jun 21 '17 15:06 paulop

Então, eu debuggei mas nada, nenhum erro, ou warning e tá tudo ativado @paulop, tava dando erro quando tava com o header, mas eu tirei e só ficam aqueles caracteres lgoi

ghost avatar Jun 21 '17 15:06 ghost

@John-Cena1 se seu site está exibindo Warning, é muito provável que esteja mostrando algum erro antes de montar a imagem. Desative todos os erros do PHP e veja se o problema continua. Entendeu o problema? o php deve estar mostrando algum notice ou warning, alguma coisa irrelevante, e por isso está gerando uma imagem invalida

scorninpc avatar Jun 21 '17 20:06 scorninpc

As únicas coisas que fiz foi mudar a função fbarcode() por echo "<img src="boleto_barcode.php?codigo=" . $dadosboleto["codigo_barras"] . "">"; e dei um include do boleto_barcode no boleto_bradesco.php. Já desativei o erro como recomendado, mas também não resolveu.

Quando eu tiro o ?codigo= ele dá erro no código, undefined index, somente isso que acontece. Tirei o header também header("Content-Type: image/png"); e aí parou o erro Cannot modify header information - headers already sent.

Só uma dúvida para ter certeza, onde eu dou o include, no layout mesmo ou no boleto_bradesco, ou no funções, ou não precisa?

Não funcionou, mas obrigado pela ajuda e atenção de qualquer jeito @scorninpc e @paulop,é um projeto muito legal é uma pena que ficou a imagem quebrada

ghost avatar Jun 22 '17 13:06 ghost

voce não tem que dar include nenhum. Voce só adiciona esse código abaixo no seu projeto

https://github.com/agenciageneral/codigo_barras_i25_boleto/blob/master/boleto_barcode.php

Esse link gera imagens de barcode. Só isso, nada mais

No arquivo de layout do boletophp tem uma função que gera o código de barras. Você vai trocar essa função por uma imagem gerada pelo link acima, somente isso

Como disse, o boleto_barcode.php está gerando algum "lixo" junto com a imagem, por isso ele não ta gerando corretamente. Se você tirou a função header(), deve ver o conteúdo da imagem. Analisando deve conseguir ver qual o "lixo"

scorninpc avatar Jun 22 '17 13:06 scorninpc

Muito obrigado @scorninpc , resolveu pra mim.

O problema que o pessoal tá enfrentando é com o "undefined variable $cbresult", quando o PHP está mostrando os erros.

Poderia adicionar na sua biblioteca a correção?

Na função codificar, linha 25:

$cbresult = '';

naurojunior avatar Jun 29 '17 13:06 naurojunior

oi @naurojunior

Obrigado pela ajuda

Porem sempre que envia headers, é altamente recomendável limpar o buffer ou remover os erros

Isso por que mesmo que eu arrume esse problema indicado, dependendo do ambiente pode haver algum outro problema. Um simples espaço no começo ou no final pode ocasionar o problema na imagem.

De qualquer forma vou sim fazer a sua recomendação

scorninpc avatar Jun 30 '17 14:06 scorninpc

Obrigado pela dica! Só verifica a linha anterior, com essa atualização acho que faltou o final dela

ficou : $cbnumeros = array("NNWWN", "WNNNW", "NWNNW", "WWNNN", "NNWNW", "WNWNN", "NWWNN", "NNNWW", "WNNWN", "NWNWN

ao invés de

$cbnumeros = array("NNWWN", "WNNNW", "NWNNW", "WWNNN", "NNWNW", "WNWNN", "NWWNN", "NNNWW", "WNNWN", "NWNWN");

naurojunior avatar Jun 30 '17 14:06 naurojunior

Boa tarde pessoal,

Agradeço ao @scorninpc pelo código para gerar o código de barras. Deu tudo certo aqui.

O @paulop comentou que "E no final das contas a remessa continua sendo opcional."

Isso é verdade?

Porque levei quase um mês para validar o arquivo remessa de teste junto à Caixa Econômica.

regisvidals avatar Jul 19 '17 20:07 regisvidals

@regisvidals ainda é possível receber boletos sem registro se ele não estiver vencido. A diferença vai ser a tarifa que vai ser mais cara. Tenho cliente que esqueceu de registrar os boletos e pagou 7 reais de tarifa sobre o boleto. Acredito que vai continuar assim, pois podem haver problemas no registro dos boletos e o banco não pode impedir do cliente receber esse valor.

Material de referência...veja na página 10 https://cmsportal.febraban.org.br/Arquivos/documentos/PDF/Nova_plataforma_cobranc%CC%A7a.pdf

paulop avatar Jul 19 '17 21:07 paulop

@regisvidals a informação do @paulop se confirma comigo. Um cliente teve problemas para registrar alguns boletos e pagou 7,50 de tarifa...

patrickmacedo avatar Jul 20 '17 14:07 patrickmacedo

Pessoal, quem deve registrar os boletos não é o beneficiário ? Aqui vocês falam que é o cliente que registra.

regisvidals avatar Jul 20 '17 16:07 regisvidals