Download the PHP package kowts/pdf-invoices without Composer
On this page you can find all versions of the php package kowts/pdf-invoices. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package pdf-invoices
PDF Invoices para PHP
Biblioteca PHP independente de frameworks para construir faturas, calcular totais monetários com segurança, renderizar templates HTML e gerar documentos PDF através de motores substituíveis.
O projeto usa um core em PHP puro e bridges oficiais para Laravel, Symfony e Yii2, mantendo as regras de domínio fora dos frameworks.
[!IMPORTANT] Este projeto gera documentos PDF de faturação, mas não substitui validação fiscal, certificação de software, comunicação com autoridades tributárias ou requisitos legais específicos de cada país.
Funcionalidades
- core PHP puro, sem Laravel, Symfony, Yii2, Carbon, Blade, Twig ou facades;
- package Composer unico com bridges opcionais;
- domínio tipado para fatura, linhas, entidades, moradas, percentagens e moeda;
- builders fluentes para
Invoice,InvoiceItemeParty; - cálculos monetários sem
floatcomo representação principal; - valores monetários em unidades mínimas, como cêntimos;
- quantidades fracionadas representadas em milésimos;
- descontos por linha e desconto global;
- impostos por linha, incluídos ou excluídos;
- múltiplas taxas por linha;
- retenções;
- validação básica de faturas antes da geração;
- templates PHP nativos
minimal,modernebranded; - tradução base em inglês e português de Portugal;
- formatação monetária simples e substituível;
- armazenamento local seguro contra path traversal básico;
- contrato
PdfEngineInterfacepara motores PDF; - engines opcionais para Dompdf, mPDF, TCPDF e Browsershot;
- preview HTML para testes e desenvolvimento;
- bridges oficiais para Laravel, Yii2 e Symfony;
- responses de download nos bridges;
- testes PHPUnit preparados para o core;
- documentação técnica em português.
Arquitetura
O core não conhece os bridges. Os bridges integram containers, tradutores, filesystems, responses e configuração de cada framework.
Consulte Arquitetura para a organização completa.
Package
O package publicavel e kowts/pdf-invoices. O core vive em src/ e as
integracoes opcionais vivem em src/Bridge/Laravel, src/Bridge/Yii2 e
src/Bridge/Symfony.
Requisitos
- PHP 8.2 ou superior;
- Composer 2;
- extensão
json; - um driver PDF opcional:
dompdf/dompdf,mpdf/mpdf,tecnickcom/tcpdfouspatie/browsershot.
Para desenvolvimento do package:
- PHPUnit 11;
- PHPStan;
- PHP-CS-Fixer;
- Rector.
Instalação
Quando o package for publicado:
Para usar Dompdf:
Drivers alternativos:
Para testar antes da publicação no Packagist, clone este repositorio e aponte a
aplicação consumidora para ele com um repositório path:
Utilização rápida
O exemplo completo está em examples/plain-php/generate.php.
Geração de PDF
O core gera documentos através de PdfEngineInterface.
Para produção, instale um driver e injete a engine pretendida no
InvoiceGenerator. Exemplo com Dompdf:
Drivers disponiveis:
| Driver | Package | Engine |
|---|---|---|
| Dompdf | dompdf/dompdf |
DompdfEngine |
| mPDF | mpdf/mpdf |
MpdfEngine |
| TCPDF | tecnickcom/tcpdf |
TcpdfEngine |
| Browsershot | spatie/browsershot + Puppeteer/Chromium |
BrowsershotEngine |
Recursos remotos e JavaScript ficam restritos por defeito nos drivers onde o package consegue aplicar essa politica. Ative-os apenas com uma politica de seguranca adequada.
Integração com Laravel
Instale o bridge na aplicação Laravel:
Publique a configuração:
Use a API principal por injeção de dependências:
A facade existe apenas como conveniência. O uso por container continua a ser a API recomendada.
Integração com Yii2
Instale o bridge na aplicação Yii2:
Configuração mínima em config/web.php:
Depois use o componente:
O bridge pode ser usado em aplicações web e console.
Integração com Symfony
Instale o bridge na aplicação Symfony:
Configuração mínima:
Use por injeção de dependências:
Regras monetárias
O MVP usa Money com unidades mínimas inteiras. Exemplo: 10.24 EUR é
representado como 1024.
As percentagens são representadas em basis points. Exemplo: 1500 representa
15%.
As quantidades usam milésimos para suportar valores como 1.5 ou 2.375.
Consulte Regras financeiras para detalhes de subtotal, descontos, impostos, retenções, arredondamento e notas de crédito.
Segurança
- escape de HTML nos templates oficiais;
- recursos remotos desativados por defeito;
- JavaScript desativado por defeito no Dompdf e no Browsershot;
- storage local com bloqueio básico contra path traversal;
- validação da fatura antes da renderização;
- sem logging automático de dados fiscais;
- templates personalizados devem ser tratados como código confiável.
Consulte Segurança.
Qualidade
O CI executa a matriz em Linux e Windows para PHP 8.2, 8.3 e 8.4.
Documentação
- Arquitetura
- Utilização
- Regras financeiras
- Segurança
- Compatibilidade
- Changelog
- Análise do repositório de referência
- Packagist
- Roadmap
- Security Policy
- Checklist de implementação
- ADR 0001 - Package unico
- ADR 0002 - Dinheiro
- Exemplos completos
Estado do projeto
O projeto está em fase beta e pronto para a primeira release 0.1.0. O core,
os templates, os exemplos e os bridges iniciais já existem, com CI em Linux e
Windows para PHP 8.2, 8.3 e 8.4.
Antes de declarar estabilidade 1.0, ainda faltam validações em aplicações
reais Laravel, Yii2 e Symfony, snapshots visuais/PDF e uma política mais
completa para assets externos.
Roadmap curto
- validar o package publicado no Packagist após cada release;
- adicionar snapshots HTML/PDF por template e por driver principal;
- testar os bridges em aplicações reais Laravel, Symfony e Yii2;
- adicionar allowlist de assets remotos por domínio/MIME/tamanho;
- preparar a próxima release beta
0.2.0com melhorias de templates.
Licença
MIT © 2026 Kowts.