Página 1 de 1

Boleto em PDF

Enviado: 07 Mai 2012 19:04
por JoséQuintas
Já sei que isso já passou por aqui, mas de lá pra cá, alguma coisa pode ter mudado.
Estou querendo gerar boleto diretamente em PDF.
Alguém conseguiu algo sobre isso?

Obs.
Para o código de barras já consegui uma rotina em PHP, que devolve o código de barras em imagem, via download.
A dificuldade agora é montar o PDF. Até gero relatórios em PDF, mas somente com texto.

Boleto em PDF

Enviado: 08 Mai 2012 11:45
por HASA
:D
José eu já postei algo a respeito, com base no projeto HbNfe que imprime código de barras para gerar o Danfe em Pdf mas as barras para Danfe (128) são diferentes do boleto ( Int-25) não consegui uma fonte compativel e abandonei o projeto, as libs utilizadas são hbhpdf.lib, png.lib e libharu.lib, caso tenha uma fonte compativel e poder compartilhar agradeço,

haaa Na pasta do Xharbour C:\xHarbour\contrib\hbhpdf\tests tem algum material para iniciar testes em modo console ok.

Hasa

Boleto em PDF

Enviado: 09 Mai 2012 20:50
por JoséQuintas
O problema é que não entendi nada dessa hpdf.
Converti uma que uso no VB6 pra Harbour, e meus relatórios já estão em PDF, somente texto.
Mas para imagem, não deu.

Pra código de barras I25, desenhar as barras é problema porque a resolução ajusta os tamanhos e a impressão acaba sendo deformada.
As opções são o esquema da harbourboleto, ou usar uma rotina em php pra gerar a imagem pronta.
É curioso, mas no php dá pra somar imagens, e assim que é feito o código de barras do boleto (barra1.gif+barra2.gif).

o projeto harbourboleto é interessante, mas como só preciso de impressão, bastaria o html de montagem, e as imagens.
Partindo disso, só faltaria mesmo gerar em PDF.
Vou dar uma olhada se dá pra usar com segurança o PDFCreator.

Boleto em PDF

Enviado: 10 Mai 2012 02:03
por fladimir
José eu to usando o CobreBem, não sei se vc conhece... ele gera o boleto no layout do banco com logo personalizada do cliente ou da software house (no caso eu), códigos de barras e já abre num preview q posso salvar como PDF, imprimir etc...

Tb gera a remessa e trata o retorno. (se bem q eu optei por apenas gerar sem registro e impressão pelo cedente)

[]´s

Boleto em PDF

Enviado: 10 Mai 2012 10:15
por ANDRIL
JoséQuintas escreveu:É curioso, mas no php dá pra somar imagens
Qual lib/script voce utiliza em php para gerar boletos online?
fladimir escreveu:eu to usando o CobreBem
Qual a forma de integracao com o nosso aplicativo (DLL, arquivo texto) tem a possibilidade de gerar o boleto e já enviar-lo a um email (passando via parametro).

Ate+

Boleto em PDF

Enviado: 10 Mai 2012 10:49
por fladimir
Andril a forma de integração é Dll

Características
- Emissão de Boletos utilizando impressora Laser ou Jato de Tinta
- Envio de Boleto por E-mail
- Geração de Arquivos de Remessa
- Leitura de Arquivos de Retorno
- Padrões CNAB / FEBRABAN

Maiores informações em Site CobreBem

[]´s

Boleto em PDF

Enviado: 10 Mai 2012 12:46
por JoséQuintas
Só corrigindo o que coloquei...
O que preciso é o boleto em PDF, o que já permite impressão.
Gerar arquivo CNAB já faço no sistema.
Enviar emails pelo sistema já é uma coisa comum, falta o PDF pra anexar... rs

Estou fazendo testes juntando Html + iexplorer + PdfCreator.
Por enquanto nada ainda.

Boleto em PDF

Enviado: 10 Mai 2012 13:18
por HASA
:))
José desculpe insistir na lib HbHpdf da contrib do xHarbour veja o pdf anexo.
Hasa

Boleto em PDF

Enviado: 21 Ago 2012 19:46
por lucimauro
Jose que voce usa para gerar seu boletos, Harbour boleto ou Cobre bem?

Boleto em PDF

Enviado: 21 Ago 2012 20:20
por Clipper
Prezado Colega José Quintas

Uma outra opção é usar o Dosprint, com ele dá pra gerar o boleto com código de barras em PDF ou RTF (Word).

Eu mesmo uso a impressão de código de barras para um cliente, veja no link abaixo um arquivo gerado em PDF com código de barras, foi totalmente gerado em Clipper+Dosprinter.

www.sealambiental.com.br/certific.pdf

Site do Dosprinter : http://dosprinter.net

Até logo.

Marcelo

Boleto em PDF

Enviado: 23 Ago 2012 11:12
por JoséQuintas
Gostei da idéia.
Até hoje ainda não criei meu boleto. Minha dificuldade é trabalhar na estética.
Fiz a rotina que desenha o código de barras, mas não fiz a que imprime o desenho do boleto.... fazer o que...
Acho que vou fazer igual DOS, com hífen, assim vai, só não sei se o banco aceita.

Obs.
Nos tempos do Lula saiu uma lei que obriga a colocar o endereço do EMITENTE no boleto.
Me parece que a maioria dos programas de boleto não foram atualizados.
Se não me engano, o harbourboleto também não.

Boleto em PDF

Enviado: 31 Out 2014 12:30
por JoséQuintas
Ressucitando o tópico.

Me baseei no manual do Banco Itaú pra cobrança mensagem, um dos modelos existentes.
Conheci esta modalidade no ano passado, tem até modelo pra cobrança de condomínio e consórcio.

Já serve pra quem quiser fazer qualquer coisa em PDF.
Ponto principal: Como fazer em milímetros?

Pra facilitar contas, como A4 é 297 mm por 210 mm, e no PDF é 841.89 por 595.28, fiz a conta simples pra obter medida em mm.
841.89 / 297 pra obter o coeficiente de altura de 1 mm, e 595.28 / 210 pra obter o coeficiente de largura pra 1 mm
Pra coluna sem problemas, mas a linha é ao contrário do Clipper: o clipper começa do zero até 66, e no PDF começaria da 66 pro zero (se fossem 66 linhas). Resultado:
Fórmula pra linha: 841.89 - ( mm * ( 841.89 / 297 ) )
Fórmula pra coluna: mm * ( 595.28 / 210 )

Pronto.
A partir daí é só pegar a régua e medir o que se quer desenhar pra fazer igual.
No fonte vai colocar o número que aparecer na régua.
Com isto fiz o desenho das linhas do boleto.
Qualquer mudança, só usar a régua e mexer no fonte.
Depois para o texto só fazer um DrawText() aceitando medidas em milímetros.
Daria até pra escolher o tamanho do fonte em milímetros também, só fazer uma fórmula de conversão.

Nota:
Precisa existir oPDF, que seria uma página da harupdf.

Boleto em PDF

Enviado: 31 Out 2014 13:27
por JoséQuintas
Excluí fonte/PDF do post anterior.
Agora completo, toda parte gráfica do boleto Itaú, exceto o logotipo.

Código: Selecionar todos

      ::DrawText(  30, 162, "Recibo do Pagador", ::nFontSizeNormal )
      ::DrawLine(  32,  20,  32, 197 )
      ::DrawLine(  32, 125,  38, 125 )
      ::DrawLine(  32, 161,  38, 161 )
      ::DrawText(  34,  20, "Beneficiário", ::nFontSizeSmall )
      ::DrawText(  34, 126, "CNPJ/CPF", ::nFontSizeSmall )
      ::DrawText(  34, 162, "Vencimento", ::nFontSizeSmall )
      ::DrawLine(  38,  20,  38, 197 )
      ::DrawLine(  38,  46,  44,  46 )
      ::DrawLine(  38,  68,  44,  68 )
      ::DrawLine(  38,  78,  44,  78 )
      ::DrawLine(  38, 118,  44, 118 )
      ::DrawLine(  38, 156,  44, 156 )
      ::DrawText(  40,  20, "CPI", ::nFontSizeSmall )
      ::DrawText(  40,  47, "Carteira", ::nFontSizeSmall )
      ::DrawText(  40,  69, "Espécie", ::nFontSizeSmall )
      ::DrawText(  40,  79, "Quantidade", ::nFontSizeSmall )
      ::DrawText ( 40, 119, "Valor", ::nFontSizeSmall )
      ::DrawText(  40, 157, "Agência/Código do Beneficiário", ::nFontSizeSmall )
      ::DrawLine(  44,  20,  44, 197 )
      ::DrawLine(  44,  51,  50,  51 )
      ::DrawLine(  44,  78,  50,  78 )
      ::DrawLine(  44, 112,  50, 112 )
      ::DrawLine(  44, 125,  50, 125 )
      ::DrawLine(  44, 151,  50, 151 )
      ::DrawText(  46,  20, "Data do Documento", ::nFontSizeSmall )
      ::DrawText(  46,  52, "Número do Documento", ::nFontSizeSmall )
      ::DrawText(  46,  79, "Espécie do Documento", ::nFontSizeSmall )
      ::DrawText(  46, 113, "Aceite", ::nFontSizeSmall )
      ::DrawText(  46, 126, "Data do Processamento", ::nFontSizeSmall )
      ::DrawText(  46, 152, "Valor do Documento", ::nFontSizeSmall )
      ::DrawLine(  50,  20,  50, 197 )
      ::DrawText( 52, 20, "Endereço", ::nFontSizeSmall )
      ::DrawLine(  56,  20,  56, 197 )
      ::DrawLine( 186,  20, 186, 197 )
      ::DrawLine( 186, 115, 190, 115 )
      ::DrawLine( 186, 197, 190, 197 )
      ::DrawText( 188, 20, "RECEBIMENTO ATRAVÉS DO CHEQUE No.", ::nFontSizeSmall )
      ::DrawText( 188, 149, "Autenticação Mecânica", ::nFontSizeSmall )
      ::DrawText( 190, 20, "DO BANCO", ::nFontSizeSmall )
      ::DrawText( 192, 20, "ESTA QUITAÇÃO SÓ TERÁ VALIDADE APÓS O PAGAMENTO", ::nFontSizeSmall )
      ::DrawText( 194, 20, "DO CHEQUE PELO BANCO PAGADOR", ::nFontSizeSmall )

      ::DrawLine( 208, 57, 214, 57 )
      ::DrawLine( 208, 71, 214, 71 )
      ::DrawText( 213, 58, "341-7", ::nFontSizeLarge )
      ::DrawText( 213, 35, "Banco Itaú S/A", ::nFontSizeSmall )
      ::DrawLine( 214, 148, 271, 148 )
      ::DrawLine( 214,  20, 214, 197 )
      ::DrawText( 216,  20, "Local de Pagamento", ::nFontSizeSmall )
      ::DrawText( 216, 149, "Vencimento", ::nFontSizeSmall )
      ::DrawLine( 223,  20, 223, 197 )
      ::DrawText( 225, 149, "Agência/Código Beneficiário", ::nFontSizeSmall )
      ::DrawLine( 229,  20, 229, 197 )
      ::DrawLine( 229,  49, 235,  49 )
      ::DrawLine( 229,  78, 235,  78 )
      ::DrawLine( 229,  99, 235,  99 )
      ::DrawLine( 229, 121, 235, 121 )
      ::DrawText( 231,  20, "Data do Documento", ::nFontSizeSmall )
      ::DrawText( 231,  50, "No.Documento", ::nFontSizeSmall )
      ::DrawText( 231,  79, "Espécie Doc", ::nFontSizeSmall )
      ::DrawText( 231, 100, "Aceite", ::nFontSizeSmall )
      ::DrawText( 231, 122, "Data Processamento", ::nFontSizeSmall )
      ::DrawText( 231, 149, "Nosso Número", ::nFontSizeSmall )
      ::DrawLine( 235,  20, 235, 197 )
      ::DrawLine( 235,  41, 241, 41 )
      ::DrawLine( 235,  73, 241, 73 )
      ::DrawLine( 235,  89, 241, 89 )
      ::DrawLine( 235, 121, 241, 121 )
      ::DrawText( 237, 20, "Uso do Banco", ::nFontSizeSmall )
      ::DrawText( 237, 42, "Carteira", ::nFontSizeSmall )
      ::DrawText( 237, 74, "Espécie", ::nFontSizeSmall )
      ::DrawText( 237, 90, "Quantidade", ::nFontSizeSmall )
      ::DrawText( 237, 122, "Valor", ::nFontSizeSmall )
      ::DrawText( 237, 149, "(-) Valor do Documento", ::nFontSizeSmall )
      ::DrawLine( 241,  20, 241, 197 )
      ::DrawText( 243, 20, "Instruções de responsabilidade do BENEFICIÁRIO. Qualquer dúvida sobre este boleto, contate o BENEFICIÁRIO", ::nFontSizeSmall )
      ::DrawText( 243, 149, "(-) Desconto/Abatimento", ::nFontSizeSmall )
      ::DrawLine( 247, 148, 247, 197 )
      ::DrawLine( 253, 148, 253, 197 )
      ::DrawText( 255, 149, "(+) Mora/Multa", ::nFontSizeSmall )
      ::DrawLine( 259, 148, 259, 197 )
      ::DrawLine( 265, 148, 265, 197 )
      ::DrawText( 267, 149, "(=) Valor Cobrado", ::nFontSizeSmall )
      ::DrawLine( 271,  20, 271, 197 )
      ::DrawText( 285, 20, "Sacador/Avalista", ::nFontSizeSmall )
      ::DrawText( 285, 149, "Código de Baixa", ::nFontSizeSmall )
      ::DrawText( 285, 18, "Banco Itaú S/A CNPJ 60.701.190", ::nFontSizeSmall, , , 90 )
      ::DrawLine( 287,  20, 287, 197 )
      ::DrawText( 289, 145, "Autenticação Mecânica/FICHA DE COMPENSAÇÃO", ::nFontSizeSmall )

METHOD DrawText( nRow, nCol, cTexto, nFontSize, cFontName, anColor, nAngle ) CLASS PDFGenBoletoClass
   LOCAL nRadian
   nFontSize := iif( nFontSize == NIL, ::nFontSize, nFontSize )
   cFontName := iif( cFontName == NIL, ::cFontName, cFontName )
   nAngle    := iif( nAngle == NIL, ::nAngle, nAngle )
   nRow      := ::mmRow( nRow )
   nCol      := ::mmCol( nCol )
   ::PdfSetColor( anColor )
   HPDF_Page_SetFontAndSize( ::oPage, HPDF_GetFont( ::oPdf, cFontName, "CP1252" ), nFontSize )
   HPDF_Page_BeginText( ::oPage )
   nRadian := ( nAngle / 180 ) * 3.141592
   HPDF_Page_SetTextMatrix( ::oPage, Cos( nRadian ), Sin( nRadian ), -Sin( nRadian ), Cos( nRadian ), nCol, nRow )
   HPDF_Page_ShowText( ::oPage, cTexto )
   HPDF_Page_EndText( ::oPage )
   RETURN NIL


METHOD DrawLine( nRowi, nColi, nRowf, nColf, nPenSize, anColor ) CLASS PDFGenBoletoClass
   nPenSize := iif( nPenSize == NIL, 0.5, nPenSize )
   nRowi    := ::mmRow( nRowi )
   nColi    := ::mmCol( nColi )
   nRowf    := ::mmRow( nRowf )
   nColf    := ::mmCol( nColf )
   ::PdfSetColor( anColor )
   HPDF_Page_SetLineWidth( ::oPage, nPenSize )
   HPDF_Page_MoveTo( ::oPage, nColi, nRowi )
   HPDF_Page_LineTo( ::oPage, nColf, nRowf )
   HPDF_Page_Stroke( ::oPage )
   RETURN NIL


Boleto em PDF

Enviado: 31 Out 2014 13:31
por JoséQuintas
Pra quem estiver curioso, ou precisar, o manual dessa cobrança mensagem do Itaú.
Os modelos de boleto começam na página 48.

Boleto em PDF

Enviado: 31 Out 2014 14:05
por JoséQuintas
Pra quem não está acostumado com método/classe, só alterar tudo pra função.
Precisa existir a página da harupdf.

Nota:
É um fonte antigo que testei e até cheguei a postar por aqui, com código de barras usando uma imagem preta.
O restante usava row/col como referência, então no momento deixou de funcionar.
Por isso postei só a parte do desenho do boleto, porque todo o resto agora precisa mexer, incluindo o código de barras usando resolução maior.