调用未定义的方法PDF :: Code128()

时间:2014-04-22 17:51:35

标签: methods undefined fpdf

编辑


我尝试使用“Code 128条形码”(来自此页面中的一个类fpdf.org(fpdf.org-> scripts-> Code 128条形码)。
Code128()方法在“code128.php”中的“类PDF_Code128扩展FPDF”中 我有这个错误“调用未定义的方法FPDF :: Code128()”当我调用Code128这是类PDF_Code128()的方法时 这是一个例子

<?php
require('fpdf.php');
require('code128.php');
$pdf = new FPDF();
$pdf->AddPage();
$code='ABCDEFG1234567890AbCdEf';
$pdf->Code128(50,170,$code,125,20);//<--Call to undefined method FPDF::Code128()
$pdf->SetFont('Helvetica','',10);
$pdf->SetXY(33,239);
$pdf->Write(1,'Some text');
$pdf->Output();
?>

如果使用$ pdf = new PDF_Code128()创建条形码对象;条形码正常工作,$ pdf对象可以访问父方法,如SetXY()和Write(),但如果使用$ pdf = new FPDF()创建;父级不能使用像Code128()这样的子方法吗?

这是我想要的一个例子:

$obj = new PDF_Code128();
$code='0123456789';
$obj->Code128(45,280,$code,125,10);

$pdf = new FPDF();
$pdf->AddPage();
--here I want to add $obj to $pdf, or just call Code128() without creating $obj if possible--
--kind of obj1->addChild(obj2)---
$pdf->Output(); 

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

(感谢你h2ooooooo的努力和帮助!感谢stackoverflow.com,我发现我的大多数问题已经回答并准备好了) 解决方案:

在文件rotation.php类中,PDF_Rotate扩展了PDF_Code128(并没有扩展FPDF !!)

Child2(类轮换)&gt; extends&gt; Child1(类code128)&gt; extends&gt; Parent(类FPDF)

创建Child2时,父级(Child1和Parent)方法可用。 这一切,我的问题可能不太清楚。

以下是使用FPDF,Code128和Rotation类的最终代码:

<?php
require('fpdf.php');
require('code128.php');//<--This must be called before rotation.php (because rotation     extends code128 class)
require('rotation.php');

class PDF extends PDF_Rotate
{
 function RotatedText($x,$y,$txt,$angle)
  {
  //Text rotated around its origin
  $this->Rotate($angle,$x,$y);
  $this->Text($x,$y,$txt);
  $this->Rotate(0);
  }
}

$pdf = new PDF();
$pdf->AddPage();
$pdf->SetFont('Helvetica','B',10);
$code='0123456789';
$pdf->Code128(13,15,$code,125,10);
$pdf->RotatedText(10,30,'Vertical Text',90);
$pdf->Write(1,'text test');
$pdf->Output();
?>