PHP code example of kowts / pdf-invoices

1. Go to this page and download the library: Download kowts/pdf-invoices library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

kowts / pdf-invoices example snippets




use PdfInvoices\Core\Builder\InvoiceBuilder;
use PdfInvoices\Core\Builder\ItemBuilder;
use PdfInvoices\Core\Builder\PartyBuilder;
use PdfInvoices\Core\InvoiceGenerator;
use PdfInvoices\Core\Storage\LocalStorage;
use PdfInvoices\Core\ValueObject\Money;
use PdfInvoices\Core\ValueObject\Percentage;
use PdfInvoices\Core\ValueObject\Quantity;

eller($seller)
    ->buyer($buyer)
    ->number('FT 2026/001')
    ->currency('CVE')
    ->locale('pt_PT')
    ->addItem(
        ItemBuilder::create()
            ->description('Serviços profissionais')
            ->unitPrice(Money::fromDecimal('1500.00', 'CVE'))
            ->quantity(Quantity::fromDecimal('2.5'))
            ->tax(Percentage::fromBasisPoints(1500))
            ->build()
    )
    ->notes('Pagamento a 30 dias.')
    ->build();

$document = InvoiceGenerator::defaultHtmlPreview()
    ->generate($invoice, 'modern');

$document->store(
    new LocalStorage(__DIR__ . '/build'),
    'invoice-preview.html'
);

use PdfInvoices\Core\Calculation\InvoiceCalculator;
use PdfInvoices\Core\Formatting\SimpleCurrencyFormatter;
use PdfInvoices\Core\InvoiceGenerator;
use PdfInvoices\Core\Localization\ArrayTranslator;
use PdfInvoices\Core\Pdf\DompdfEngine;
use PdfInvoices\Core\Template\FilesystemTemplateResolver;
use PdfInvoices\Core\Template\NativePhpTemplateRenderer;
use PdfInvoices\Core\Validation\DefaultInvoiceValidator;

$generator = new InvoiceGenerator(
    new DompdfEngine(),
    new NativePhpTemplateRenderer(FilesystemTemplateResolver::default()),
    new InvoiceCalculator(),
    ArrayTranslator::default(),
    new SimpleCurrencyFormatter(),
    new DefaultInvoiceValidator()
);

$pdf = $generator->generate($invoice, 'branded');
$pdf->save(__DIR__ . '/invoice.pdf');

use PdfInvoices\Core\InvoiceGenerator;

final class InvoiceController
{
    public function download(InvoiceGenerator $generator)
    {
        $document = $generator->generate($invoice, config('pdf-invoices.template'));

        return response()->streamDownload(
            fn () => print $document->contents(),
            'invoice.pdf',
            ['Content-Type' => $document->mimeType()]
        );
    }
}

use PdfInvoices\Core\Bridge\Yii2\PdfInvoicesComponent;

return [
    'components' => [
        'pdfInvoices' => [
            'class' => PdfInvoicesComponent::class,
            'template' => 'modern',
            'locale' => 'pt_PT',
        ],
    ],
];

$document = Yii::$app->pdfInvoices->generate($invoice);

use PdfInvoices\Core\InvoiceGenerator;
use Symfony\Component\HttpFoundation\Response;

final readonly class InvoiceController
{
    public function __construct(private InvoiceGenerator $generator)
    {
    }

    public function __invoke(): Response
    {
        $document = $this->generator->generate($invoice);

        return new Response($document->contents(), 200, [
            'Content-Type' => $document->mimeType(),
        ]);
    }
}
text
Aplicações PHP / Laravel / Yii2 / Symfony
    ↓
Bridges e adaptadores
    ↓
kowts/pdf-invoices
    ↓
PHP 8.2+ e contratos independentes
bash
php artisan vendor:publish --tag=pdf-invoices-config