How can multiple templates for different companies be efficiently managed when converting HTML/CSS to PDF?

When converting HTML/CSS to PDF for different companies, it is essential to efficiently manage multiple templates. One way to do this is by using a template engine like Twig in PHP. By creating separate Twig templates for each company and dynamically rendering them based on the company's data, you can easily generate PDFs with different styles and layouts.

// Load Twig library
require_once 'vendor/autoload.php';

// Initialize Twig loader and environment
$loader = new Twig_Loader_Filesystem('templates');
$twig = new Twig_Environment($loader);

// Company-specific data
$companyData = [
    'company1' => [
        'name' => 'Company 1',
        'logo' => 'logo1.png',
    ],
    'company2' => [
        'name' => 'Company 2',
        'logo' => 'logo2.png',
    ],
];

// Render PDF using company-specific template
$company = 'company1'; // Change this to switch between companies
$template = $twig->load('template_' . $company . '.twig');
$html = $template->render($companyData[$company]);

// Convert HTML to PDF (using library like mpdf)
$mpdf = new \Mpdf\Mpdf();
$mpdf->WriteHTML($html);
$mpdf->Output('company_pdf_' . $company . '.pdf', 'D');