项目需求:在后台上传的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++)

河南网站建设选择亿宏世纪.5年来持续为众多企业提供河南网络推广,河南网络营销,seo公司,河南百度优化,河南网站优化,河南全网营销.

河南网络推广,河南网络营销,seo公司,河南百度优化,河南网站优化,河南全网营销

{

$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);

河南网站建设选择亿宏世纪.5年来持续为众多企业提供河南网络推广,河南网络营销,seo公司,河南百度优化,河南网站优化,河南全网营销.

河南网络推广,河南网络营销,seo公司,河南百度优化,河南网站优化,河南全网营销

二、加文字水印

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);

// 创建页面(横向或纵向取决于导入的页面大小)

河南网站建设选择亿宏世纪.5年来持续为众多企业提供河南网络推广,河南网络营销,seo公司,河南百度优化,河南网站优化,河南全网营销.

河南网络推广,河南网络营销,seo公司,河南百度优化,河南网站优化,河南全网营销

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');

这样就可以,原图效果如下:

# 水印1

导出图片如下:

水印2

如图达到了在图片上加上图片印章的效果:

下面是加上文字的效果:

河南网站建设选择亿宏世纪.5年来持续为众多企业提供河南网络推广,河南网络营销,seo公司,河南百度优化,河南网站优化,河南全网营销.

河南网络推广,河南网络营销,seo公司,河南百度优化,河南网站优化,河南全网营销

水印3

感觉还是加图片效果更好。而且中文会乱码,这个问题没有去解决因为我只需要加图片水印,猜想应该是页面编码和 arial字体原因。

水印4

$pdf->Write(7,'这是水印');//写入内容大小

header("Content-type: text/html; charset=utf-8");

定义了页面编码是utf-8 输出的文字还是乱码

水印5

$pdf->SetFont('宋体','B','12');//设置文字的字号字

我尝试将字体改成中文的最后发现不支持

暂时没有找到解决方法。

河南亿宏世纪网络科技有限公司,专注于互联网+品牌整合营销,公司拥有专业的互联网管理、运营策划、UI设计、技术开发等团队,专业从事于工业互联网的开发建设。我司拥有成熟的网络技术开发团队,针对网站开发、技术服务、网站风格定位、网站功能优化、网站推广维护等都具备很强的专业技术水平,旨在为客户提供专业的互联网应用解决方案。公司始终秉持着诚信经营、质量为先的经营理念,我们不仅提供优质的网络技术和云端供应链服务,而且还在产品的选择、应用等方面提供专业的咨询与售后服务。

微信服务号

微信服务号

服务热线

15617359779

15617359779