如何在 laravel 中使用 mpdf 为每个页面添加水印
How to add watermark to every page using mpdf in laravel
我在 laravel 中使用 niklasravnsborg/laravel-pdf
包来生成 pdf。在此代码中,我添加了水印,但该水印仅出现在最后一页,但我希望它出现在每一页中。
$pdf = PDFm::loadHtml($result->document);
$pdf->mpdf->SetWatermarkText('DRAFT');
$pdf->mpdf->showWatermarkText = true;
return $pdf->download('hdtuto.pdf');
根据文档,它应该可以工作。但是,您可以尝试以下操作吗?
$config = ['instanceConfigurator' => function($mpdf) {
$mpdf->SetWatermarkText('DRAFT');
$mpdf->showWatermarkText = true;
}]
PDF::loadHtml($result->document, $config)->download('hdtuto.pdf');
在这种情况下,我们使用正确的配置实例初始化 PDF
实例,而不是在加载 HTML 之后进行初始化。
mPDF doc 指出
The watermark will be added to each page when the Footer is printed if the variable $showWatermark is set to 1 or true.
尝试将 header/footer 添加到您的 PDF 并设置相应的标志
如果有人试图使用 blade 文件而不是直接 html 文档,您可以使用视图函数,它将 return html 内容添加到 loadHtml 方法。
$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');
如果您想使用图片作为水印
$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');
我在 laravel 中使用 niklasravnsborg/laravel-pdf
包来生成 pdf。在此代码中,我添加了水印,但该水印仅出现在最后一页,但我希望它出现在每一页中。
$pdf = PDFm::loadHtml($result->document);
$pdf->mpdf->SetWatermarkText('DRAFT');
$pdf->mpdf->showWatermarkText = true;
return $pdf->download('hdtuto.pdf');
根据文档,它应该可以工作。但是,您可以尝试以下操作吗?
$config = ['instanceConfigurator' => function($mpdf) {
$mpdf->SetWatermarkText('DRAFT');
$mpdf->showWatermarkText = true;
}]
PDF::loadHtml($result->document, $config)->download('hdtuto.pdf');
在这种情况下,我们使用正确的配置实例初始化 PDF
实例,而不是在加载 HTML 之后进行初始化。
mPDF doc 指出
The watermark will be added to each page when the Footer is printed if the variable $showWatermark is set to 1 or true.
尝试将 header/footer 添加到您的 PDF 并设置相应的标志
如果有人试图使用 blade 文件而不是直接 html 文档,您可以使用视图函数,它将 return html 内容添加到 loadHtml 方法。
$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');
如果您想使用图片作为水印
$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');