我创建mPDF水印除了灰色和总是1行之外,我的问题是:
可以更改除灰色外的水印颜色吗?如果是的话,mpdf.php内部应该如何或在哪里改变。
是否可以将水印更改为2行?
我的代码:
<?php
include('../includes/mPDF/mpdf.php');
$file = "./TMP/dummy.pdf";
$watermark = "ILLEGAL";
$mpdf_dee = new mPDF();
$mpdf_dee->SetImportUse();
$pagecount = $mpdf_dee->SetSourceFile($file);
$mpdf_dee->AddPage();
$import_page = $mpdf_dee->ImportPage();
$mpdf_dee->UseTemplate($import_page);
$mpdf_dee->SetWatermarkText("$watermark", 0.4);
$mpdf_dee->watermark_font = 'Arial';
$mpdf_dee->showWatermarkText = true;
$mpdf_dee->Output();
?>
答案 0 :(得分:0)
mPDF目前不支持与透明度为黑色的不同颜色的水印文本。只有水印的变量是文本,透明度或alpha和字体。
您可以使用所需颜色的文本水印图像 - 从而使PDF尺寸更大。
$mpdf->SetWatermarkImage('background.jpg');
$mpdf->showWatermarkImage = true;
https://mpdf.github.io/reference/mpdf-functions/setwatermarkimage.html
答案 1 :(得分:0)
在我的代码中,我修复了一些常见的错误,例如:
1)水印文本位于图像之外。
2)PNG和JPG图片错误。
所以我计算图像宽度并确定字体大小。所以字体大小是动态的。
所以您只需复制我的方法并将其粘贴到要使用的位置即可。
function waterMark($SourceFile,$ext='png',$WaterMarkText)
{
if( $ext == "jpg" or $ext == 'jpeg')
$image = imagecreatefromjpeg($SourceFile);
else
$image = imagecreatefrompng($SourceFile);
list($width, $height) = getimagesize($SourceFile);
$font = public_path('fonts/arial.ttf');
$size = $width*4/100; // calculating font size based on image width.
# calculate maximum height of a character
$bbox = imagettfbbox($size, 0, $font, 'ky');
$x = 8; $y = 8 - $bbox[5];
$black = imagecolorallocate($image, 0, 0, 0);
$white = imagecolorallocate($image, 255, 255, 255);
imagettftext($image, $size, 0, $x + 1, $y + 1, $black, $font, $WaterMarkText);
imagettftext($image, $size, 0, $x + 0, $y + 1, $black, $font, $WaterMarkText);
imagettftext($image, $size, 0, $x + 0, $y + 0, $white, $font, $WaterMarkText);
//header("Content-Type: image/jpeg");
// imagejpeg($image, null, 90);
if ($SourceFile <> '') {
imagejpeg ($image, $SourceFile, 100);
} else {
header('Content-Type: image/jpeg');
imagejpeg($image, null, 100);
};
imagedestroy($image);
return 1; // you can remove it...
}