PHP code example of carloscardoso05 / pptx-template

1. Go to this page and download the library: Download carloscardoso05/pptx-template 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/ */

    

carloscardoso05 / pptx-template example snippets


use PptxTemplate\PptxTemplate;

// Carregar template de dados binários
$templateData = file_get_contents('template.pptx');
$template = PptxTemplate::fromData($templateData);

// Substituir tags por texto
$template->setTextValues([
    'nome' => 'João Silva',
    'curso' => 'Desenvolvimento Web',
    'dt_inicio' => '01/01/2026',
    'dt_fim' => '30/06/2026',
    'docente' => 'Maria Santos',
    'ementa' => "Módulo 1 - HTML\nMódulo 2 - CSS\nMódulo 3 - JavaScript",
    'id' => 'CERT-2026-001',
]);

// Adicionar imagem a partir de dados binários
$imageData = file_get_contents('qrcode.png');
$template->addImageFromData('qr_code', $imageData);

// Salvar e retornar dados binários
$outputData = $template->saveToData();
file_put_contents('output.pptx', $outputData);

use PptxTemplate\PptxTemplate;
use Illuminate\Support\Facades\Http;

// Carregar template do Spatie Media Library
$media = $curso->getFirstMedia('modelos');
$template = PptxTemplate::fromData($media->getContent());

// Processar template
$template->setTextValues([
    'nome' => $participante->nome,
    'curso' => $curso->nome,
]);

// Gerar QR Code
$qrcodeData = "CERT-{$participante->id}";
$qrcodeImage = Http::get("https://api.qrserver.com/v1/create-qr-code/?size=300x300&data=" . urlencode($qrcodeData))->body();
$template->addImageFromData('qr_code', $qrcodeImage);

// Salvar e adicionar ao Spatie
$outputData = $template->saveToData();
$tempPath = storage_path('app/temp/cert_' . uniqid() . '.pptx');
file_put_contents($tempPath, $outputData);

$certificado = $participante->certificado()->create();
$certificado->addMedia($tempPath)->toMediaCollection('certificados');
unlink($tempPath);