Как добавить наложение / штамп в PDF-файл в PHP? - PullRequest
0 голосов
/ 14 марта 2012

Кто-нибудь знает, как программно добавить оверлей или штамп в PDF-файл на PHP? Пока что лучшее, что я придумал, это вызов библиотеки PDFTK с командой exec. Я бы предпочел настоящий метод PHP, если он существует.

1 Ответ

3 голосов
/ 10 августа 2014

Это старый вопрос, но я надеюсь помочь кому-то, кто ищет этот ответ.

Я успешно использовал FPDF (http://www.fpdf.org), бесплатная библиотека PHP.

У меня естьВырежьте этот код из большой функции, пожалуйста, обратите внимание на отсутствующие переменные, которые я не смог бы здесь включить.

        $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');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...