kleyton-dev / csv-report-generator
Um pacote de exemplo para gerar relatórios PDF a partir de arquivos CSV.
Installs: 49
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/kleyton-dev/csv-report-generator
Requires
- php: >=8.1
- phpoffice/phpspreadsheet: ^2.0
- tecnickcom/tcpdf: ^6.7
Requires (Dev)
- phpunit/phpunit: ^10.0
README
Um pacote PHP para ler arquivos .csv, processar dados e gerar relatórios em .pdf automaticamente.
🚀 Instalação
1. Via Packagist (Recomendado)
composer require kleyton-dev/csv-report-generator
2. Para Desenvolvimento Local
Adicione isto ao composer.json do seu projeto principal (ex: Laravel):
{
"require": {
"kleyton-dev/csv-report-generator": "@dev"
},
"repositories": [
{
"type": "path",
"url": "../csv-report-generator"
// Ajuste o caminho para a pasta do pacote
}
]
}
Depois, execute composer update.
Como Usar
A classe principal é Kleytondev\CsvReportGenerator\ReportGenerator. Ela possui um método:
process(string $csvInputPath, string $pdfOutputPath)
Exemplo de Uso Básico (PHP Puro)
<?php require 'vendor/autoload.php'; use Kleytondev\CsvReportGenerator\ReportGenerator; $meuCsv = __DIR__ . '/meus_dados.csv'; $meuPdf = __DIR__ . '/meu_relatorio_final.pdf'; try { (new ReportGenerator())->process($meuCsv, $meuPdf); echo "Relatório gerado com sucesso!"; } catch (\Exception $e) { echo "Erro: " . $e->getMessage(); }
Exemplo de Uso (Dentro de um Job do Laravel)
Este pacote é ideal para processamento em fila.
<?php namespace App\Jobs; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Foundation\Bus\Dispatchable; use Illuminate.Queue\InteractsWithQueue; use Kleytondev\CsvReportGenerator\ReportGenerator; // <-- Use o pacote class GerarRelatorioCsv implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable; public function __construct( protected string $caminhoCsv, protected string $caminhoPdf ) {} /** * Executa o job. */ public function handle(): void { try { // Instancia e executa a lógica pesada do pacote (new ReportGenerator())->process($this->caminhoCsv, $this->caminhoPdf); // (Atualize o status no BD para 'Concluído') } catch (\Exception $e) { // (Atualize o status no BD para 'Falhou') report($e); } } }