Este projeto demonstra a arquitetura necessária para implementar um emissor de boletos bancários em PHP, focando na separação de responsabilidades (POO) e na persistência de configurações.
NOTA IMPORTANTE: Devido à complexidade de cálculo de código de barras e layout (regras da Febraban e dos bancos), este projeto simula a integração com uma biblioteca real (OpenBoleto) para focar na lógica de frontend/backend, configuração e geração de PDF.
- POO (Service Layer): A classe
BoletoGeneratoratua como a camada de serviço, gerenciando a persistência das configurações do cedente em JSON e simulando a chamada à biblioteca de terceiros. - Persistência em Arquivo: Os dados críticos do cedente (nome, conta, banco) são salvos em um arquivo local (
src/Config.json), simulando uma base de dados de configuração. - Geração de PDF: O projeto utiliza a biblioteca html2pdf.js no frontend para converter o HTML gerado pelo backend em um arquivo PDF para download, cumprindo o requisito de saída.
- Interface Dinâmica (AJAX): A interface possui abas para Configuração e Emissão, comunicando-se com a API via
GETePOSTpara carregar/salvar dados e gerar o boleto.
- Backend: PHP 7.4+ (POO, Manipulação de JSON, Filesystem I/O).
- Bibliotecas Externas (Simuladas): OpenBoleto (Geração de Boletos) e Dompdf (Conversão HTML -> PDF).
- Frontend: HTML5, JavaScript Vanilla (
fetchAPI), Tailwind CSS, html2pdf.js.
php-boleto-generator/
├── index.html
├── api.js
├── README.md
├── .gitignore
└── 📁 src/
├── config.json
├── BoletoGenerator.php
└── api.php
- Um ambiente de servidor web com PHP.
- Composer (Recomendado para ambientes reais, simulado aqui).
- Permissão de escrita no diretório
src/para criar oConfig.json.
-
Crie a estrutura de pastas e insira os arquivos (
BoletoGenerator.php,api.php,index.html,app.js). -
Crie o arquivo de configuração vazio:
touch src/Config.json
Garanta que o PHP tem permissão de escrita neste arquivo.
-
Instalar a Dependência PHP Utilize o Composer para instalar a biblioteca openboleto/openboleto dompdf/dompdf:
composer require openboleto/openboleto dompdf/dompdf- Execute o servidor embutido do PHP (a partir da raiz do projeto):
php -S localhost:8001
- Acesse a aplicação no navegador:
http://localhost:8001/public/index.html.
-
Configuração (Emitente):
- Vá para a aba "Configuração".
- Preencha os dados (Nome, Banco, Agência, Conta, etc.).
- Clique em Salvar Configuração. O PHP salvará esses dados em
src/Config.json. - Recarregue a página para ver os dados persistidos.
-
Emissão (Sacado):
- Vá para a aba "Emissão".
- Preencha os dados do Sacado, o Valor e a Data de Vencimento.
- Clique em Emitir Boleto (HTML). O backend validará a configuração e gerará o HTML simulado.
-
Gerar PDF:
- Após a emissão, clique em Gerar PDF do Boleto. O JavaScript usará a biblioteca
html2pdf.jspara renderizar o conteúdo da prévia em um PDF para download.
- Após a emissão, clique em Gerar PDF do Boleto. O JavaScript usará a biblioteca
Contribuições são sempre bem-vindas!
Sinta-se à vontade para abrir uma issue com sugestões ou enviar um pull request com melhorias.
📧 Entre em contato pelo LinkedIn
💻 Desenvolvido por Onivaldo Miquelino