Robert21: FPDI Passwort setzen

Hi!

Ich erhalt immer einen Fehler, sobald ich mittels FPDI ein Passwort erstellen will.
=>
Habt ihr ne idee was da falsch is oder wie ich das herausfinden kann, ohne der Zeile funktionierts fein :-/

Mein Code:
require_once ('include/fpdf/fpdf.php');
require_once ('include/fpdi/fpdi.php');
require_once ('include/fpdi/FPDI_Protection.php');
require_once ('include/personalizedPDF.php');

$pdf = new personalizedPDF ( );
if ($pdf->setPDFSource ( $path )) {
if (! $pdf->SetProtection ( array ('print' ), "passwort" )) {
$message .= "Es ist ein unbekannter Fehler ausgetreten!";
} else {
if (! $pdf->setPersonalize ( $personalizeText )) {
$message .= "Es ist ein unbekannter Fehler ausgetreten!";
$pdf->createPDF ();
$pdf->Output ( $req_file, 'D' );
}
}
}

##################################################################
personalizedPDF.php:
##################################################################
<?php

/**
 * requires fpdf.php & fpdi.php
 * creates PDF with a personalized text
 */

class personalizedPDF extends FPDI_Protection {

private $sourcefile;  
private $personalize;  

/\*\*  
 \* loads the Sourcefile  
 \* @param $sourcefile  
 \*/  
function setPDFSource($sourcefile) {  
  
	if(!is\_file($sourcefile)) return false;  
	else {  
		if(!file\_exists($sourcefile)) return false;  
	}  
	  
	$this->sourcefile = $sourcefile;  
	  
	return true;  
}  
  
/\*\*  
 \* sets the Personalizable text for the PDF  
 \* !!!funktioniert noch nicht!!!  
 \* @param $personalize  
 \*/  
function setPersonalize($text) {  
	if(!is\_null($text) && is\_string($text)) {  
		$this->personalize = $text;  
		return true;  
	}  
	else return false;  
}  
  
/\*\*  
 \* creates a footer with the personalized text  
 \* @param $personalize  
 \*/  

function Footer()
    {
     if(isset($this->personalize)) {
     // Über dem unteren Seitenrand positionieren
            $this->SetY(-10);
            // Schriftart festlegen
            $this->SetFont('Arial','I',8);
            // Graue Schrift
            $this->SetTextColor(200, 200, 200);
            // Zentrierte Ausgabe der Seitenzahl
            $this->Cell(0,10,$this->personalize);
     }
    }

/\*\*  
 \* creates the PDF  
 \* if $this->personalize is set, it uses it  
 \* now only portrait, change AddPage('P',..) for landscape  
 \*/  
function createPDF() {  
  
	$pagecount = $this->setSourceFile($this->sourcefile);  

	for ($i = 1; $i <= $pagecount; $i++) {  

$tplidx = $this->ImportPage($i);
                $s = $this->getTemplatesize($tplidx);
                $this->AddPage('P', array($s['w'], $s['h']));
                $this->useTemplate($tplidx);

}
    }

}

?>

  1. Sry, hier das ganze als PHP-Code

    Mein Code:

    require_once ('include/fpdf/fpdf.php');  
    require_once ('include/fpdi/fpdi.php');  
    require_once ('include/fpdi/FPDI_Protection.php');  
    require_once ('include/personalizedPDF.php');  
      
    $pdf = new personalizedPDF ( );  
    if ($pdf->setPDFSource ( $path )) {  
    	if (! $pdf->SetProtection ( array ('print' ), "passwort" )) {  
    		$message .= "Es ist ein unbekannter Fehler ausgetreten!";  
    	} else {  
    		if (! $pdf->setPersonalize ( $personalizeText )) {  
    			$message .= "Es ist ein unbekannter Fehler ausgetreten!";  
    			$pdf->createPDF ();  
    			$pdf->Output ( $req_file, 'D' );  
    		}  
    	}  
    }
    

    ##################################################################
    personalizedPDF.php:
    ##################################################################

    <?php  
      
      
    /**  
     * requires fpdf.php & fpdi.php  
     * creates PDF with a personalized text  
     */  
      
    class personalizedPDF extends FPDI_Protection {  
    	  
    	private $sourcefile;  
    	private $personalize;  
      
    	/**  
    	 * loads the Sourcefile  
    	 * @param $sourcefile  
    	 */  
    	function setPDFSource($sourcefile) {  
    	  
    		if(!is_file($sourcefile)) return false;  
    		else {  
    			if(!file_exists($sourcefile)) return false;  
    		}  
    		  
    		$this->sourcefile = $sourcefile;  
    		  
    		return true;  
    	}  
    	  
    	/**  
    	 * sets the Personalizable text for the PDF  
    	 * !!!funktioniert noch nicht!!!  
    	 * @param $personalize  
    	 */  
    	function setPersonalize($text) {  
    		if(!is_null($text) && is_string($text)) {  
    			$this->personalize = $text;  
    			return true;  
    		}  
    		else return false;  
    	}  
    	  
    	/**  
    	 * creates a footer with the personalized text  
    	 * @param $personalize  
    	 */  
        function Footer()  
        {  
        	if(isset($this->personalize)) {  
        		// Über dem unteren Seitenrand positionieren  
                $this->SetY(-10);  
                // Schriftart festlegen  
                $this->SetFont('Arial','I',8);  
                // Graue Schrift  
                $this->SetTextColor(200, 200, 200);  
                // Zentrierte Ausgabe der Seitenzahl  
                $this->Cell(0,10,$this->personalize);  
        	}  
        }  
      
    	/**  
    	 * creates the PDF  
    	 * if $this->personalize is set, it uses it  
    	 * now only portrait, change AddPage('P',..) for landscape  
    	 */  
    	function createPDF() {  
    	  
    		$pagecount = $this->setSourceFile($this->sourcefile);  
      
    		for ($i = 1; $i <= $pagecount; $i++) {  
                    $tplidx = $this->ImportPage($i);  
                    $s = $this->getTemplatesize($tplidx);  
                    $this->AddPage('P', array($s['w'], $s['h']));  
                    $this->useTemplate($tplidx);  
      
            }  
        }  
      
    }
    

    ?>

    danke!
    Robert

    1. Hallo Robert,

      require_once ('include/fpdf/fpdf.php');

      require_once ('include/fpdi/fpdi.php');
      require_once ('include/fpdi/FPDI_Protection.php');

      $pdf = new personalizedPDF ( );
      if ($pdf->setPDFSource ( $path )) {

      /* Die Signatur von SetProtection lautet:
       *
       *   void SetProtection (
       *       [array $permissions=array()
       *       [, string $user_pass=''[, string $owner_pass='']]] )
       *
       * SetProtection liefert nichts zurück. Nicht False, nicht irgendetwas anderes.
       */

      // Daher kannst Du den Erfolg nicht so prüfen.

      if (! $pdf->SetProtection ( array ('print' ), "passwort" )) {
      $message .= "Es ist ein unbekannter Fehler ausgetreten!";
      }

        
        
        
      Freundliche Grüße  
        
      Vinzenz
      
      1. So is there a possibility to recognize why it doesn't work?

        The I use the SetProtection() without the if(), I always get a pdf, where the passwort doesn't work.
        When I delete the line everything works fine...

        thx
        Robert