Skip to content

Pacchetto CodeIgniter

TCPDF-Next CodeIgniter
CodeIgniter · LGPL-3.0

Il 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-codeigniter

Requisiti: CodeIgniter ^4.0, PHP ^8.5

Configurazione

Pubblica il file configurazione:

bash
php spark tcpdf-next:publish
php
// 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');
    }
}

Rilasciato sotto licenza LGPL-3.0-or-later.