Pacchetto CodeIgniter
CodeIgniter · LGPL-3.0Il pacchetto CodeIgniter fornisce integrazione CodeIgniter 4 per TCPDF-Next — registrazione service, classe Library per controller, generazione asincrona basata su queue e helper risposta HTTP con header sicurezza OWASP.
Installazione
bash
composer require yeeefang/tcpdf-next-codeigniterRequisiti: CodeIgniter ^4.0, PHP ^8.5
Configurazione
Pubblica il file configurazione:
bash
php spark tcpdf-next:publishphp
// app/Config/TcpdfNext.php
namespace Config;
use CodeIgniter\Config\BaseConfig;
class TcpdfNext extends BaseConfig
{
public string $fontsDirectory = WRITEPATH . 'fonts';
public string $defaultPageSize = 'A4';
public string $defaultOrientation = 'portrait';
public bool $autoPageBreak = true;
public float $marginBottom = 25.0;
}Uso Service
php
namespace App\Controllers;
use Yeeefang\TcpdfNext\CodeIgniter\Services\TcpdfNextService;
class InvoiceController extends BaseController
{
public function download(int $id)
{
$invoice = model('InvoiceModel')->find($id);
$pdf = service('tcpdfnext')->create()
->setTitle("Fattura #{$invoice->number}")
->addPage()
->setFont('Helvetica', '', 12)
->cell(0, 10, "Fattura #{$invoice->number}");
return service('tcpdfnext')->response($pdf, "invoice-{$invoice->number}.pdf");
}
}Uso Library
php
namespace App\Controllers;
use Yeeefang\TcpdfNext\CodeIgniter\Libraries\PdfLibrary;
class ReportController extends BaseController
{
public function generate()
{
$pdfLib = new PdfLibrary();
$pdf = $pdfLib->create()
->setTitle('Rapporto Mensile')
->addPage()
->setFont('Helvetica', 'B', 16)
->cell(0, 10, 'Rapporto Mensile', newLine: true);
return $pdfLib->inline($pdf, 'report.pdf');
}
}