2012-03-14 43 views
0

PHPでPDFファイルにオーバーレイやスタンプをプログラムで追加する方法を知っている人はいますか?これまでのところ私が思いついたベストは、execコマンドでPDFTKライブラリを呼び出すことです。私は実際のPHPメソッドがある場合はそれを好むでしょう。PHPでPDFファイルにオーバーレイ/スタンプを追加するには?

+2

これは役に立ちますか? http://stackoverflow.com/questions/2913934/how-i-can-add-watermark-to-existing-pdf-file-using-php – wanovak

+0

ライセンス料を払う余裕があれば、[PDFlib](http:// pdflib.com)はかなりいいです。 –

+0

私はそのポストwanovakを見たが、それを理解できなかった。今私はもっとよく見て、それは私のために働いています。ありがとうございました! – dmikester1

答えて

3

これは古い質問ですが、私はこの回答を探している人を助けることを願っています。

無料の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'); 
+0

ありがとう!そのプロジェクトでもう作業していないので、テストできません。しかし、それは私によく見える! – dmikester1

関連する問題