项目需求:在配景上传的pdf上自动加上水印,防备别人盗用,在一定水平上能够起到回护感化,早年没有做过只要在图片上加水印,分享一下百度的案例;
需要用到的插件
fpdf
fpdi
下面github地点能够在项目中下载这两个文件
https://github.com/laiyuxiang/pdf_watermark/
1.增加图片水印
vendor('fpdf.fpdf',"",".php");//引入文件
vendor('fpdi.fpdi',"",".php");//引入文件
$pdf = new \FPDI();
$pageCount = $pdf->setSourceFile($file);//文件地点
for ($pageNo = 1; $pageNo <= $pageCount; $pageNo++)
{
$templateId = $pdf->importPage($pageNo);
// 获得导入页面的巨细
$size = $pdf->getTemplateSize($templateId);
//创立页面(横向或纵向取决于导入的页面巨细)
if ($size['w'] > $size['h']) $pdf->AddPage('L', array($size['w'], $size['h']));
else $pdf->AddPage('P', array($size['w'], $size['h']));
// use the imported page
$pdf->useTemplate($templateId);
// 安排图形
$pdf->image($img, 75, 85, 50);\\img水印图片,
网站建设公司,后面的是水印在pdf中坐标
}
$pdf->Output($file_dir.$file_url);
二、加笔墨水印
vendor('fpdf.fpdf',"",".php");
vendor('fpdi.fpdi',"",".php");
$pdf = new \FPDI();//初始
//文件地点
$pageCount = $pdf->setSourceFile($file);
for ($pageNo = 1; $pageNo <= $pageCount; $pageNo++)
{
// 导入pdf
$templateId = $pdf->importPage($pageNo);
// 获得pdf的巨细
$size = $pdf->getTemplateSize($templateId);
// 创立页面(横向或纵向取决于导入的页面巨细)
if ($size['w'] > $size['h']) $pdf->AddPage('L', array($size['w'], $size['h']));
else $pdf->AddPage('P', array($size['w'], $size['h']));
$pdf->SetFont('Arial','B','12');//设置笔墨的字号字
$pdf->SetXY(0, 0); // 笔墨地点位置这个x,y值,自身调
$pdf->Write(7, '1111');//写入内容巨细
}
$pdf->Output('word.pdf');
如许就能够,原图成果以下:
导出图片以下:
如图达到了在图片上加上图片印章的成果:
下面是加上笔墨的成果:
感觉仍是加图片成果更好。并且中文会乱码,这个标题没有去解决因为我只需要加图片水印,料想应该是页面编码和 arial字体缘由。
$pdf->Write(7,'这是水印');//写入内容巨细
header("Content-type: text/html; charset=utf-8");
界说了页面编码是utf-8 输出的笔墨仍是乱码
$pdf->SetFont('宋体','B','12');//设置笔墨的字号字
我实验将字体改成中文的最后发现不支撑
临时没有找到解决方式。