Dompdf set_opacity 'Multiply' 仅适用于第一页和最后一页

Dompdf set_opacity 'Multiply' only working on first and last page

我正在使用 Dompdf 向 PDF 输出添加水印文本。它工作完美,文本显示在每一页上,但我无法让不透明度在每一页上工作。例如,对于一个 8 页的 PDF,tt 在第一页和第八页上显示正确的 0.1 不透明度,但在其间的所有其他页面上显示完全 1.0 的不透明度。这是完整的代码

    // send PDF to the browser
    $dompdf = new Dompdf();
    $options = $dompdf->getOptions();
    $options->setDefaultMediaType('print');
    $options->setIsPhpEnabled(true);
    $options->setIsRemoteEnabled(true);
    $options->setIsHtml5ParserEnabled(true);
    $dompdf->setOptions($options);
    $dompdf->loadHtml($pdf);
    $dompdf->setPaper('letter', 'portrait');
    $dompdf->render();

    // add watermark
    if ($watermark)
    {
        $canvas = $dompdf->getCanvas();
        $height = $canvas->get_height();
        $width = $canvas->get_width();
        $canvas->set_opacity(0.1, 'Multiply');
        $canvas->page_text($width/5, $height/2, $watermark, $font = null, $size = 70, $color = array(0,0,0), $wordSpace = 2, $charSpace = 2, $angle = -30);
    }

    return $dompdf->stream(Str::slug($name, '-').'-'.Carbon::now()->format('Ymd-His').'.pdf');

知道是什么导致了这个问题吗? 谢谢你的想法:)

我遇到了同样的问题,我找到了解决方案,所以我会与您分享:

取代

$canvas->set_opacity(.2, 'Multiply');

据此:

$canvas->page_script('$pdf->set_opacity(.2, "Multiply");');