31 lines
1.0 KiB
PHP
31 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace App\Domains\Admin\Controllers;
|
|
|
|
use App\Domains\ParticipantInvoice\ParticipantInvoiceTokens;
|
|
use App\Models\DocumentTemplate;
|
|
use App\Providers\DocumentTemplateRenderProvider;
|
|
use App\Providers\PdfGenerateAndDownloadProvider;
|
|
use App\Scopes\CommonController;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Http\Response;
|
|
|
|
/**
|
|
* Rendert die Vorlage mit Beispieldaten, ohne sie zu speichern -- damit niemand blind HTML editiert.
|
|
*/
|
|
class DocumentTemplatesPreviewController extends CommonController
|
|
{
|
|
public function __invoke(Request $request): Response
|
|
{
|
|
$html = new DocumentTemplateRenderProvider(
|
|
DocumentTemplate::TYPE_PARTICIPANT_INVOICE,
|
|
(array) $request->input('blocks', []),
|
|
)->render(ParticipantInvoiceTokens::sample());
|
|
|
|
return response(PdfGenerateAndDownloadProvider::fromHtml($html, 'portrait'), 200, [
|
|
'Content-Type' => 'application/pdf',
|
|
'Content-Disposition' => 'inline; filename="vorschau.pdf"',
|
|
]);
|
|
}
|
|
}
|