如何使用TCPDF缩放页面底部文本并将其保留在页面上?

时间:2013-10-12 19:44:22

标签: php formatting tcpdf

我正在使用TCPDF来创建条形码标签。代码工作得很好,直到我尝试缩放价格文本以使其更高(更明显)。现在,底行的标签将组件溢出到以后的页面上,包括未缩放的组件。看来沿着标签底行的文本的纵坐标值是在页面底部之外,这导致了问题,但我认为在调用像MultiCell这样的程序时设置(x,y)值绝对设置(x ,y)价值?有谁知道如何解决这一问题?我可以强迫大型艺术板吗?我可以在缩放后移动对象吗?我可以以某种方式从页外纵坐标计算中恢复吗?

问题出在下面的create_label函数中。第二条MultiCell线是缩放条目。对标签底行的具体影响是说明和价格在第一个标签上正确,但条形码被强制到第二页。第二个标签的描述和价格在第二页,但条形码被强制为第三个。等

function create_label($posx, $posy, $upc, $price, $desc){
    global $START_X, $START_Y, $INC_X, $INC_Y, $style, $pdf;
    $pdf->SetFont('helvetica', '', 15);
    $pdf->MultiCell(1.00, 0.575, $desc, 0, 'L', false, 1, $START_X+($posx*$INC_X), $START_Y+($posy*$INC_Y), true, 1, false, true, 0.575, 'M', true);
    $pdf->SetFont('', 'B', '24');
    $pdf->StartTransform();
    $pdf->ScaleY('200',1.00,0.7+($posy*$INC_Y)); break;
    $pdf->MultiCell(1.00, 0.575, $price, 0, 'R', false, 1, $START_X+($posx*$INC_X)+1.00, $START_Y+($posy*$INC_Y), true, 1, false, true, 0.575, 'M', true);
    $pdf->StopTransform();
    $pdf->write1DBarcode($upc, 'UPCA', $START_X+($posx*$INC_X), $START_Y+($posy*$INC_Y)+0.3125+0.2625, 2.0, .3, '', $style, 'N');
}

$pdf = new TCPDF('P', 'in', 'LETTER', true, 'UTF-8', false);
$pdf->SetMargins(0.1875, 0.5, 0.1875);
$pdf->SetHeaderMargin(0);
$pdf->SetFooterMargin(0);
$pdf->SetAutoPageBreak(TRUE, 0.5);
$pdf->setImageScale(PDF_IMAGE_SCALE_RATIO);
if (@file_exists(dirname(__FILE__).'/lang/eng.php')) {
  require_once(dirname(__FILE__).'/lang/eng.php');
  $pdf->setLanguageArray($l);
}
$pdf->AddPage();

$START_X = 0.85;
$START_Y = 0.38;
$INC_X = 2.375;
$INC_Y = 0.9375;

// label width = 2.25
// label height = 0.875
// Label gutter = 1/8 x 1/16

$upc_list = array( /*Array of UPC numbers*/ );
for($row = 0; $row <= 10; $row++){
    for ($col = 0; $col <= 2; $col++){
        unset($upc);
        if(strlen($upc) > 0 && strlen($upc) < 13 && is_numeric($upc)) {
            unset($item);
            $item = get_item_from_database($upc);  // Creates data array
            create_label($col, $row, $upc, $item['price'], trim($item['description']));
        }
    }
}
$pdf->Output('test_pdf.pdf', 'I');

0 个答案:

没有答案