
/*

   Autor:  Pablo Martins F. Costa <pablo@shark.ib.usp.br> 
   Data: 25/05/2000
   http://boleto.ivend.com.br 

   Voc pode distribuir, utilizar e alterar livremente estas rotinas desde
   que mantenha este comentrio que identifica o autor original.

   phpboleto: Copyright 2000 Pablo Martins F. Costa  <pablo@shark.ib.usp.br>  

   You should have received a copy of the GNU Public
   License along with this package; if not, write to the
   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
   Boston, MA 02111-1307, USA.

*/                             


24/11/2000


Agradecimentos:
Gostaria de agradecer ao Fabio Rabelo (Da lista do php)
por me enviar os layouts do Bradesco e CEF
so precisei fazer umas pequenas alteracoes e incluir
o fator vencimento. Valeu Fabio    


Para instalar o phpboleto vc precisara ter o php instalado
(claro :-)

Dica de onde pegar o php com suporte a GD:

Para linux vc poe encontrar o php (quase sempre em ultima versao)
no endereco:

Para Linux
http://rpms.arvin.dk/php/


Para windows procure em:
http://php4win.de/


Instalador automtico para windows:
http://php.weblogs.com/easywindows


Se deseja que o boleto seja uma unica imagem o php precisara
ter suporte a gif ou png, ou seja modulo GD, caso contrario
voce so podera utilizar o boleto em html

Para utilizar fontes true type ha a necessidade de compilar
o GD com suporte a ttf, para isto tem que ter o freetype-devel
instalado 

Para ver se o seu php tem suporte a GD crie um arquivo com o nome
phpinfo.php e coloque nele a seguinte funcao:

<? phpinfo() ;?>

A seguir veja este arquivo pelo navegador:

Ex: http://localhost/phpinfo.php

Veja entao se existe a informacao semelhante:

GD Version 1.5 (GIF) or earlier, FreeType support

Se tiver seu php esta pronto !!!

Caso contrario recompile seu php.

Ps vc deve ter o pacode gd-devel e freetype-devel instalado

A maior parte do problema ja esta resolvido:

- Criacao do codigo de barras
- Linha digitavel
- Criacao da imagem com os dados

Agora so falta a composicao do esquema para cada banco,
pois o codigo de barras eh composto por 44 caracteres.
19 dos quais fixos, e os 25 demais cada banco tem um layout.

Ja tenho o layout dos bancos: Bradesco e BankBoston, Cef e Santander
Quem puder colaborar por favor me mande o layout de outros
bancos que eu faco a formatacao !!!

Estrutura dos arquivos:


phpboleto.php   	-  Programa que deve ser chamado para gerar o boleto

config.php  		-  Arquivo de configuracao

fonts	    		-  Arquivos com as fontes True Type
images          	-  Diretorio com a imagem do boleto 
banks			-  Arquivos com as funcoes que montam o codigo de barras 
		   	   para cada banco especifico

exemplo.php		-  Exemplo de como chamar o phpboleto na forma de imagem 

functions.php   	-  Funcoes bancarias para o digito verificador e outras

geraboleto.php  	-  Chama o gerador de boletos  
geraboleto_img.php  	-  Faz o codigo de barras na imagem 
geraboleto_html.php  	-  Faz o codigo de barras em html 

strings_img.php     	-  Escreve os dados do boleto na imagem
strings_html.php     	-  Escreve os dados do boleto no html


boletomail_img.php	- Manda email (boleto de imagem)
boletomail_html.php     - Manda email (boleto de html)


Formularios exemplos para testar o boleto:

ex_bankboston.php
ex_bradesco.php
ex_cef.php
ex_santander.php


Formatacao do layout do codigo de barras:

banks/bankboston.php 
banks/bradesco.php
banks/cef.php
banks/santander.php


mail/htmlboleto.html  - Modelo do boleto em html para exibio e email
mail/imgboleto.html   - Modelo do boleto em imagem para email

images/		      - Onde ficam as imagens :-))


Instalacao:

Descompacte todos os arquivos num diretorio visivel pela web
ex: /home/httpd/html, e configure os parametros no arquivo
config.php, la vc vai obter informacoes sobre os parametros.


O phpboleto deve ser chamado como uma imagem, por exemplo no
caso de um sistema de comercio eletronico em que vc faca uma compra
e no final apresenta o boleto para o cliente:

<img src="/boleto/phpboleto.php?$cdte=teste&$vcto=26/05/2000&$nmum...etc">


Ps: Para testar isto na pratica experimentem fazer uma compra com boletos na loja de 
demonstracao http://www.ivend.com.br/ivend.cgi 

Segue abaixo os dados que devem ser passados para o phpboleto.php:
Ps: muitos sao opcionais

/* Nome do cedente */
$cdte = "" 

/* Data do vencimento */
$vcto = "" 

/* Numero do pedido */
$nnum = "" 

/* Numero documento */
$ndoc = "" 

/* Especie documento */
$edoc = "" 

/* Data do documento */
$ddoc = "" 

/* agencia/codigo cedente */
$agcod = "" 

/* Valor do documento */
$vdoc = "" 

/* Valor cobrado */
$vcobr = "" 


/* Sacado */
$sacado = "" 

/* CPF/CGC */
$cpf = "" 

/* Local de Pagamento */
$lp = "" 
                                         

/* Sacador */
$sacador = "" 


/* Aceite */
$act = "" 


/* data do processamento */
$dproc = "" 


/* carteira */
$cart = "" 


/*  Especificacao moeda */
$espmoed = "" 


/* quantidade */
$qtde = "" 


/* valor da moeda */
$vmoed = "" 


/* descontos */
$desc = "" 


/* outras deducoes */
$odesc = "" 


/* mora / multa */
$multa = "" 


/* outros acrescimos */
$oac = "" 


/* instrucoes */
$instr1 = "" 
$instr2 = "" 
$instr3 = "" 
$instr4 = "" 
$instr5 = "" 


/* Somente para a versao em html */


/* Demonstrativo */
$demons1 = ""
$demons2 = ""
$demons3 = ""
$demons4 = ""


/* Endereco */
$endereco = ""
$bairro   = ""
$estado   = ""
$cep      = ""
