@php use App\Enums\Formation\DocumentProjet; use App\Support\Formation\TexteArabePdf; $rtl = $langue === 'ar'; // dompdf ne sait ni lier les lettres arabes ni inverser l'ordre bidirectionnel : mesuré, il // sort des glyphes isolés et illisibles. On façonne donc AVANT de lui donner le texte (§7). // ⚠️ $t ne fait QUE façonner : il n'échappe pas. C'est `{{ }}` qui échappe, et il échappe une // fois. Une double protection écrivait « qu'est-ce que tu vends » en toutes lettres sur // le dossier remis à la commission — mesuré sur les huit PDF avant correction. Aux rares // endroits où l'on assemble du HTML à la main ($case du canvas), on échappe explicitement. $t = static fn (?string $texte, int $largeur = 90): string => TexteArabePdf::pdf($texte, $langue, $largeur); $dh = static fn ($v): string => number_format((float) $v, 2, ',', ' ').' DH'; $manque = $rtl ? 'لم يُجب بعد' : 'pas encore répondu'; // Le canvas est le seul document en paysage, et il DOIT tenir sur une page — un Business // Model Canvas coupé en deux n'est plus un canvas. Mesuré : avec les marges de portrait il // dépassait d'une poignée de points. On lui donne donc une page plus serrée, et le pied // remonte d'autant pour ne pas tomber hors de la feuille. $paysage = $document === DocumentProjet::BusinessModelCanvas; $margeBas = $paysage ? '1.5cm' : '2.4cm'; $piedSous = $paysage ? '-1.0cm' : '-1.5cm'; @endphp {{-- Les quatre documents du dossier (v2.1 §7). « Le PDF doit être présentable tel quel à une commission de financement » : mise en page sobre, identité du bénéficiaire, nom du programme, logo, date. Prêt à joindre au dossier R8, sans reprise sous Word. Un champ sans réponse écrit « pas encore répondu », jamais un zéro et jamais un blanc : sur un dossier de financement, un blanc se lit comme un oubli de l'organisme, un zéro comme une réponse du porteur. Ni l'un ni l'autre n'est vrai. --}}
|
{{ $companyName }}
{{ $t($titre) }}
{{ $t($apprenant->nomComplet) }}
@if (filled($apprenant->projet_intitule)) — {{ $t($apprenant->projet_intitule) }} @endif
@if (filled($apprenant->village)) · {{ $t($apprenant->village) }} @endif
{{ $t($rtl ? ($programme?->titre_ar ?: $programme?->titre_fr ?? '') : ($programme?->titre_fr ?? '')) }} @if ($programme?->referenceMarche()) · {{ $programme->referenceMarche() }} @endif |
@if ($logo !== null && $rtl)
{{ $genere_le->format('d/m/Y') }} |