PHP和FPDF - sprintf在某些组合中不使用数据

时间:2013-07-24 03:25:37

标签: php fpdf printf

我遇到以下代码问题。我想使用内容(取自某些社区生成器字段)打印到信封的标签。

标签的第一行将包含订阅者的标题,名字和姓氏,这样可以正常工作。我得到了一份完全符合要求信息的PDF文件。

第二行是事物开始变成梨形的。当我尝试在第2行中包含$ faculty而不是我在下面的代码中得到的空字符串时,PDF产生的下载为0字节,Acrobat表示它不是受支持的文件类型。

奇怪的是,如果我不包括第一行,我可以在标签上打印$ faculty。

我以前使用的代码将相同的数据打印到CSV。我只需要转而使用PDF格式。

任何人都知道为什么会这样,并且可以指出我正确的方向?我正在使用的许多领域都有逗号和内容,但这不会有任何区别吗?

干杯!

为清晰起见,请注意:此代码为WORKS。什么不起作用的是当我用'$ lineTwo = sprintf(“%s”,$ faculty)替换下面的$ lineTwo赋值时;'。或'$ lineTwo =“$ faculty”);“。

foreach($activeSubscribers as $subscriber) {
$title = $subscriber->$fields[0][1];
$firstname = $subscriber->$fields[1][1];
$surname = $subscriber->$fields[2][1];
$faculty = $subscriber->$fields[3][1];          
$institution = $subscriber->$fields[4][1];  
$address1 = $subscriber->$fields[5][1]; 
$address2 = $subscriber->$fields[6][1]; 
$suburb = $subscriber->$fields[7][1]; 
$state = $subscriber->$fields[8][1];        
$postcode = $subscriber->$fields[9][1]; 
$country = $subscriber->$fields[10][1]; 

$lineOne = sprintf("%s %s %s",$title, $firstname, $surname);

$lineTwo = "";              // should have faculty and institution
$lineThree = sprintf("%s",$suburb); // should have address line 1 
$lineFour = "";             // should have address line 2
$lineFive = "";             // should have suburb, state, postcode
$lineSix = "";              // should have country 

1 个答案:

答案 0 :(得分:0)

我想你忘了添加这一行

$text = sprintf("%s\n%s\n%s\n%s", $lineOne, $lineTwo, $lineThree, $lineFour);
$pdf->Add_Label($text);

如果您不想使用sprintf(),可以像这样逐行打印

$pdf->Add_Label($lineone);
$pdf->Add_Label($linetwo);

尝试此选项

$pdf->Write(0.2,$lineone);
$pdf->Write(0.2,$linetwo);