FPDF:不同的标题徽标



我使用PHP中的FPDF类来创建PDF。一切都很好,但是现在我需要标题中具有不同徽标的PDF。

创建标头效果很好。

class PDF extends FPDF {
  function Footer() {
    // some code
  }
  function Header() {
    $this->Image('PDF/images/pdf_header.png', 0, 0, 215);
  }
}

现在我需要这样的东西。我的文件中存在变量" $ is_summer"。

class PDF extends FPDF {
  function Footer() {
    // some code
  }
  function Header() {
    if ($is_summer)
      $this->Image('PDF/images/pdf_header_summer.png', 0, 0, 215);
    } else {
      $this->Image('PDF/images/pdf_header_winter.png', 0, 0, 215);
    }
  }
}

但我得到:注意:undefined变量:createpdfpriv.php in Line 200 。。

好的,未定义的var。所以我尝试了

function Header($is_summer) {
  if ($is_summer)
    $this->Image('PDF/images/pdf_header_summer.png', 0, 0, 215);
  } else {
    $this->Image('PDF/images/pdf_header_winter.png', 0, 0, 215);
  }
}

另一个错误:警告:pdf :: header的声明($ is_summer(应与createpdfpriv.php中的fpdf :: header((在第145行145

中兼容

也尝试了:

 if ($is_summer) {
   function Header() {
     $this->Image('PDF/images/pdf_header_summer.png', 0, 0, 215);
   }
 } else {
   function Header() {
     $this->Image('PDF/images/pdf_header_winter.png', 0, 0, 215);
   }
 }

也是一个错误:解析错误:语法错误,出乎意料的'if'(t_if(,在199 上的createpdfpriv.php中期望函数(t_function(。好的,有一个预期的功能,这是行不通的。

任何人可以帮忙吗?

也许您已经忘记了" $ this" is_summer"之前?您可以尝试一下:

class PDF extends FPDF{
	private $isSummer = false;
	function __construct($summer) {
		parent::__construct();
		$this->isSummer = $summer;
		print "In BaseClass constructorn";
	}
	function Header() {
		if ($this->isSummer) {
			$this->Image('PDF/images/pdf_header_summer.png', 0, 0, 215);
		} else {
			$this->Image('PDF/images/pdf_header_winter.png', 0, 0, 215);
		}
	}
}

使用时:

$mysummer = true; // or false
$mypdf = new PDF($mysummer);

您可以这样解决:

class PDF extends FPDF {
  public  $is_summer;
  function Footer() {
    // some code
  }
  function Header() {
    if ($this->is_summer)
      $this->Image('PDF/images/pdf_header_summer.png', 0, 0, 215);
    } else {
      $this->Image('PDF/images/pdf_header_winter.png', 0, 0, 215);
    }
  }
}

所以您要做的是制作PDF对象时,将is_summer属性设置为True或False,并且可以在Header函数中使用该属性。

要执行此操作,您可以使构造函数这样的功能如此:

class PDF extends FPDF {
  public  $is_summer;
  function __construct($is_summer){
    $this->is_summer = $is_summer;
  }
  function Footer() {
    // some code
  }
  function Header() {
    if ($this->is_summer)
      $this->Image('PDF/images/pdf_header_summer.png', 0, 0, 215);
    } else {
      $this->Image('PDF/images/pdf_header_winter.png', 0, 0, 215);
    }
  }
}

最新更新