php程序如何在pdf文檔上加上水印

2023-02-07    分類: 網(wǎng)站建設(shè)

項(xiàng)目需求:在后臺上傳的pdf上自動加上水印,防止別人盜用,在一定程度上可以起到保護(hù)作用,以前沒有做過只有在圖片上加水印,分享一下百度的案例;
需要用到的插件
fpdf
fpdi
下面github地址可以在項(xiàng)目中下載這兩個文件

水印插件

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);
//獲取導(dǎo)入頁面的大小
$size=$pdf->getTemplateSize($templateId);
//創(chuàng)建頁面(橫向或縱向取決于導(dǎo)入的頁面大?。?br />if($size['w']>$size['h'])$pdf->AddPage('L',array($size['w'],$size['h']));
else$pdf->AddPage('P',array($size['w'],$size['h']));
//usetheimportedpage
$pdf->useTemplate($templateId);
//放置圖形
$pdf->image($img,75,85,50);\\img水印圖片,后面的是水印在pdf中坐標(biāo)
}
$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++)
{
//導(dǎo)入pdf
$templateId=$pdf->importPage($pageNo);
//獲取pdf的大小
$size=$pdf->getTemplateSize($templateId);
//創(chuàng)建頁面(橫向或縱向取決于導(dǎo)入的頁面大?。?br />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');//設(shè)置文字的字號字
$pdf->SetXY(0,0);//文字所在位置這個x,y值,自己調(diào)
$pdf->Write(7,'1111');//寫入內(nèi)容大小
}
$pdf->Output('word.pdf');
水印1
這樣就可以,原圖效果如下:
導(dǎo)出圖片如下:

水印2

如圖達(dá)到了在圖片上加上圖片印章的效果:
下面是加上文字的效果:

水印3

感覺還是加圖片效果更好。而且中文會亂碼,這個問題沒有去解決因?yàn)槲抑恍枰訄D片水印,猜想應(yīng)該是頁面編碼和 arial字體原因。

水印4

$pdf->Write(7,'這是水印');//寫入內(nèi)容大小
header("Content-type:text/html;charset=utf-8");
定義了頁面編碼是utf-8 輸出的文字還是亂碼

水印5

$pdf->SetFont('宋體','B','12');//設(shè)置文字的字號字
我嘗試將字體改成中文的最后發(fā)現(xiàn)不支持

新聞名稱:php程序如何在pdf文檔上加上水印
路徑分享:http://www.bm7419.com/news41/235641.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)ChatGPT、網(wǎng)頁設(shè)計(jì)公司、品牌網(wǎng)站制作、品牌網(wǎng)站建設(shè)網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化