格式化数组中的一个元素


FPDF: Format one element from an array

我使用FPDF的标签代码。我正在从sql调用数据库生成的数组中获取标签的内容。这对我来说很好。我想将其中一行的格式与其他行不同,要么使用较大的字体,要么使用粗体。下面是我使用的代码:

require('PDF_Label.php');
// Standard format
$pdf = new PDF_Label('5160');
$pdf->AddPage();
require('includes/mysqli_connect.php');
$sql = "SELECT FullLegalName, CivicAddress1, CivicCity, CivicPostal FROM coops";
$result = @mysqli_query($dbc, $sql);
if($result){
while($row = mysqli_fetch_array($result, MYSQLI_ASSOC)){
    $name = $row['FullLegalName'];
    $address = $row['CivicAddress1'];
    $pcode = $row['CivicPostal'];
    //each s relates to the inserts.  Watch for double quotes around variables
    $text = sprintf("%s'n%s'n%s %s'n%s", "$name", "$address", 'Toronto', 'ON', "$pcode");
    $pdf->Add_Label($text);
}
$pdf->Output();

我想把$name改成粗体或大一点的字体,如果可能的话。

谢谢你看这个

通过在PDF_Label.php类中增加2个功能,可以实现不同的打印格式:

// Return XY co-ordinates for additional text (different $pdf->SetFont)
function LabelX() {
    $_PosX = $this->_Margin_Left + $this->_COUNTX*($this->_Width+$this->_X_Space) + $this->_Padding;
    return ($_PosX);
}
function LabelY() {
    $_PosY = $this->_Margin_Top + $this->_COUNTY*($this->_Height+$this->_Y_Space) + $this->_Padding;
    return ($_PosY);
}

建立当前标签的坐标。

示例脚本(循环的一部分):

$pdf->SetFont(Arial,B,12);  // Bold (font size as defined for label type).
$addresstext = sprintf("%s %s %s'n%s'n%s'n%s'n%s'n%s'n%s'n", "$title", "$initials", "$surname", "$address1", "$address2", "$town", "$county", "$postcode", "$country");
$pdf->Add_Label($addresstext);
// Add secondary text in normal smaller font.
$LabelX = $pdf->LabelX();
$LabelY = $pdf->LabelY();
$pdf->SetXY($LabelX,$LabelY);
$pdf->SetFont(Arial,'',9);
$secondtext = sprintf("'n'n'n'n'n'n'n%s  %s  %s", "$reminder", "$memberno", "$postalarea");
$pdf->MultiCell(95,7, $secondtext,0,'R');  // Prints bottom right of label.

可能没有那么整洁,但它可以工作!