php给pdf加上水印 环境 php5.5.12 fpdi-1.5.2 fpdf-1.7 原理 利用fpdi来加载已知pdf文件,用fpdf对pdf进行操作
注意事项 免费的fpdi只支持处理pdf1.4及以下版本,1.5以上就需要用到FPDI PDF-Parser插件
使用方法 fpdi-1.5.2 fpdf-1.7 1.文字水印 word.php
<?php
require_once('./fpdf/fpdf.php'); require_once('./fpdi/fpdi.php');
//word_watermark $pdf = new FPDI();
// get the page count $pageCount = $pdf->setSourceFile('more.pdf');
// iterate through all pages for ($pageNo = 1; $pageNo <= $pageCount; $pageNo++) { // import a page $templateId = $pdf->importPage($pageNo);
// get the size of the imported page $size = $pdf->getTemplateSize($templateId);
// create a page (landscape or portrait depending on the imported page size) 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->SetFont('Arial','B','12'); // sign with current date $pdf->SetXY(0, 0); // you should keep testing untill you find out correct x,y values $pdf->Write(7, date('Y-m-d'));
} $pdf->Output('word.pdf');
2.图片水印 pic.php
<?php
require_once('./fpdf/fpdf.php'); require_once('./fpdi/fpdi.php');
//pic_watermark $pdf = new FPDI(); // get the page count $pageCount = $pdf->setSourceFile('more.pdf');
// iterate through all pages for ($pageNo = 1; $pageNo <= $pageCount; $pageNo++) { // import a page $templateId = $pdf->importPage($pageNo);
// get the size of the imported page $size = $pdf->getTemplateSize($templateId);
// create a page (landscape or portrait depending on the imported page size) 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);
// Place the graphics $pdf->image("test.png", 75, 85, 50);
} $pdf->Output('pic.pdf'); 3.项目地址
pdf_watermark