0
votes

Comment ajouter un filigrane à chaque page en utilisant mpdf dans laravel

J'utilise le niklasravnsborg/laravel-pdf dans laravel pour générer un pdf. Dans ce code, j'ai ajouté un filigrane, mais ce filigrane ne vient que sur la dernière page, même si je voulais qu'il soit dans chaque page.

$pdf = PDFm::loadHtml($result->document);
$pdf->mpdf->SetWatermarkText('DRAFT');
$pdf->mpdf->showWatermarkText = true;
return $pdf->download('hdtuto.pdf');


0 commentaires

3 Réponses :


0
votes

D'après la documentation, cela devrait fonctionner. Pourriez-vous cependant essayer ce qui suit?

$config = ['instanceConfigurator' => function($mpdf) {
    $mpdf->SetWatermarkText('DRAFT');
    $mpdf->showWatermarkText = true;
}]

PDF::loadHtml($result->document, $config)->download('hdtuto.pdf');

Dans ce cas, nous initialisons l'instance PDF avec la bonne instance de configuration, au lieu de le faire après le chargement du HTML.


2 commentaires

Incroyable frangin. J'ai une solution parfaite. Merci beaucoup.


Je vous en prie. S'il vous plaît envisager de voter / marquer si cela vous a aidé :)



0
votes

Le document mPDF indique que

Le filigrane sera ajouté à chaque page lors de l'impression du pied de page si la variable $ showWatermark est définie sur 1 ou true.

Essayez d'ajouter un en-tête / pied de page à votre PDF et définissez les indicateurs correspondants


0 commentaires

0
votes

Si quelqu'un essaie d'utiliser un fichier lame au lieu d'un document html direct, vous pouvez utiliser la fonction view qui renverra le contenu html à la méthode loadHtml.

$config = ['instanceConfigurator' => function ($mpdf) {
                $mpdf->SetWatermarkImage(asset('path/to/image_file'));
                $mpdf->showWatermarkImage = true;
                // $mpdf->watermarkImageAlpha = 0.2; // image opacity 
                // dd($mpdf) // show all attributes 
            }];

            $pdf = PDF::loadHtml(view('path.to.blade_file', $blade_data), $config);

            return $pdf->stream('DocumentName.pdf');

si vous souhaitez utiliser une image comme filigrane

$config = ['instanceConfigurator' => function($mpdf) {
    $mpdf->SetWatermarkText('DRAFT');
    $mpdf->showWatermarkText = true;
}]

$pdf = PDF::loadHtml(view('path.to.blade_file', $blade_data), $config);

return $pdf->stream('DocumentName.pdf');


0 commentaires