PDF加水印(旋转水印)

composer
        "setasign/fpdf": "^1.8",
        "setasign/fpdi": "^2.6",
        "setasign/tfpdf": "^1.33",
        "tecnickcom/tcpdf": "6.6.*",
        "mpdf/mpdf": "^8.2"

 

Fpdi水印无法旋转,mpdf可设置旋转角度

原文地址:php给pdf文件加上水印 - carol2014 - 博客园

mpdf:
        $defaultConfig = (new ConfigVariables())->getDefaults();
        $fontDirs = $defaultConfig['fontDir'];
        $defaultFontConfig = (new FontVariables())->getDefaults();
        $fontData = $defaultFontConfig['fontdata'];
        $mpdf = new Mpdf([
            'mode' => '+aCJK',
            'fontDir' => array_merge($fontDirs, [ROOT_PATH . '/public/static']),
            'fontdata' => $fontData +
                [
                    'msyh' => [
                        'R' => 'msyh.ttf',
                    ],
                ],
            'default_font' => 'msyh'
        ]);
        $mpdf->autoScriptToLang = true;
        $mpdf->autoLangToFont = true;

        $text  = 'H.E. Adeeb Alaama' . '  ' . date('Y-m-d H:i') . '  ' . getip();
        //文字水印
        $watermarkText = new \Mpdf\WatermarkText($text, 30, 30, '#996633', 0.4);
        $mpdf->SetWatermarkText($watermarkText, 0.3);
        $mpdf->showWatermarkText = true;
//        $mpdf->watermarkAngle = '30';

        $pageCount = $mpdf->SetSourceFile(ROOT_PATH . '/public/storage/'.$link_url); //读取原始文件页数
        for ($i = 1; $i <= $pageCount; $i++) {
            $import_page = $mpdf->ImportPage($i);
            $mpdf->UseTemplate($import_page);
            if ($i < $pageCount)
                $mpdf->AddPage();
        }
        $mpdf->Output(ROOT_PATH . '/public/upload/watermarked_pdf.pdf', 'F');// 下载修改后的PDF
Fpdi:
        $pdf = new \setasign\Fpdi\Tfpdf\Fpdi();
        $pdf->AddFont('msyh', '', 'msyh.ttf', true); //简体中文可正常显示
        $pdf->SetFont('msyh', '', 14);

        $pageCount = $pdf->setSourceFile(ROOT_PATH . '/public/storage/'.$link_url);
        for ($pageNo = 1; $pageNo <= $pageCount; $pageNo++) {
            $templateId = $pdf->importPage($pageNo);
            $pdf->AddPage();
            $pdf->useTemplate($templateId, ['adjustPageSize' => true]);

            //文字水印
            $pdf->SetTextColor(200, 200, 200);
            $pdf->SetXY(20, 30);
            $pdf->Write(0,  'H.E. Adeeb Alaama');
            $pdf->SetXY(80, 30);
            $pdf->Write(0,  date('Y-m-d H:i'));
            $pdf->SetXY(140, 30);
            $pdf->Write(0,  getip());

            //设置位置 - 加在中间位置
            $size = $pdf->getTemplateSize($templateId);
            $center_x = $size['width']/2;
            $center_y = $size['height']/2;
            $pdf->SetXY($center_x, $center_y);

        }
        $pdf->Output('F', ROOT_PATH . '/public/upload/watermarked_pdf.pdf');// 下载修改后的PDF

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值