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");');
我正在使用 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");');