php如何給pdf加上文字水印和圖片水印

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章