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');
3 Réponses :
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.
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é :)
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
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');