有什么办法可以在DOMPDF页面添加水印图片,还是只能通过HTML来实现?

Is there any way to add watermark image in DOMPDF page, or it can be done only through HTML?

在我的laravel项目中,我想为使用DOMPDF 生成的pdf 页面添加图像水印。我可以采用的一种方法是通过 html 添加背景图像,但是 DOMPDF 是否提供了任何直接的方法来这样做?

我使用的dompdf版本是0.7.0
PHP 版本是 7.0.18

Dompdf 针对 HTML 渲染进行了优化,但如果出于某种原因这不可行,您也可以使用 canvas 对象直接向 PDF 添加图像。

有了目前可用的版本(最新版本为 0.8.0),您应该可以使用类似于以下代码片段的内容来执行此操作:

$dompdf = new Dompdf();
$dompdf->loadHtml($html);
$dompdf->render();
$canvas = $dompdf->getCanvas();
$canvas->page_script('
  $pdf->set_opacity(.5);
  $pdf->image("/path/to/image.png", {x}, {y}, {w}, {h});
');

其中:

  • 图像在本地文件系统上
  • {x} = 从左上角开始的水平 (X) 位置
  • {y} = 从左上角开始的垂直 (Y) 位置
  • {w} = 图片宽度
  • {h} = 图片高度
  • 不透明度是从 0(透明)到 1(不透明)的十进制值