如何在 PHP 中为 PDF 文件添加覆盖/图章?

Posted

技术标签:

【中文标题】如何在 PHP 中为 PDF 文件添加覆盖/图章?【英文标题】:How to add an overlay/stamp to a PDF file in PHP? 【发布时间】:2012-03-14 15:35:32 【问题描述】:

有谁知道如何在 php 中以编程方式向 PDF 文件添加叠加层或图章?到目前为止,我想出的最好的方法是使用 exec 命令调用 PDFTK 库。如果存在,我更喜欢实际的 PHP 方法。

【问题讨论】:

这有帮助吗? ***.com/questions/2913934/… 如果你能负担得起授权费,PDFlib 很不错。 我查看了那个帖子 wanovak,但无法弄清楚。现在我仔细看了看,这对我有用。谢谢! 感谢 Marc,但对于这么小的项目,我们永远买不起这样的东西。 【参考方案1】:

这是一个老问题,但我希望能帮助寻找这个答案的人。

我已经成功使用了免费的 PHP 库 FPDF (http://www.fpdf.org)。

我已经从一个大函数中删除了这段代码,请注意我无法在此处包含的缺失变量。

        $pdf = new FPDI();

        // Number of pages of the PDF
        $pagecount = $pdf->setSourceFile($source."/".$pdfList[$i]);

        // Loop the PDF's pages
        for($page_index=0; $page_index < $pagecount; $page_index++)
        

            $tplidx = $pdf->importPage(($page_index+1), '/MediaBox');
            $pdf->addPage();
            $pdf->useTemplate($tplidx);

            // Do I need to stamp this page? This is a boolean flag calculated from the settings for each page.
            $stampThis = false;

            if($settings->pages == 'all') 
            
                $stampThis = true;
            
            else if($settings->pages == 'last')
            
                if($pagecount == $page_index+1)
                
                    $stampThis = true;
                
            
            else if($settings->pages == 'first')
            
                if($page_index == 0)
                
                    $stampThis = true;
                
            
            else if($settings->pages == 'odd')
            
                if($page_index%2 == 0)
                
                    $stampThis = true;
                
            
            else if($settings->pages == 'even')
            
                if($page_index%2 != 0)
                
                    $stampThis = true;
                
                       

            // Stamp the PDF, in case the flag is true
            if($stampThis)
            
                // Custom stamp
                if(!empty($settings->imageURL)) 

                    $pdf->Image($settings->imageURL, 
                                $settings->stamp_coord_x,
                                $settings->stamp_coord_y);
                

             // stamp if end

         // pages loop end

      $pdf->Output($destination.'/'.$pdfList[$i], 'F');

【讨论】:

谢谢!不再从事该项目,所以我无法测试。但我觉得它看起来不错!

以上是关于如何在 PHP 中为 PDF 文件添加覆盖/图章?的主要内容,如果未能解决你的问题,请参考以下文章

给PDF文档添加电子图章的方法

Java 处理PDF图章(印章)——图片图章动态图章

如何在PDF文档添加电子公章

求人不如求己,四个步骤轻松为PDF文档添加电子公章

PHP imagecopy 函数根据主图像的高度和宽度改变图章大小

如何在android中为pdf查看器制作注释,如突出显示、删除线、下划线、绘制、添加文本等?