如何在tcpdf中手动定位条形码

时间:2016-02-05 21:25:24

标签: php barcode tcpdf

我正在尝试以编程方式在pdf文件中添加一些条形码但我认为我对定位没有正确理解。这是我的代码

    $pdf = new TCPDF("L", "mm", array(80, 40), true, 'UTF-8', false);
    $pdf->SetMargins(3, 3, 3);

    // remove default header/footer
    $pdf->setPrintHeader(false);
    $pdf->setPrintFooter(false);

    $pdf->setFontSubsetting(true);
    $pdf->SetFont('freeserif', '', 12);

    foreach ($barcodes as $barcode){

        $pdf->AddPage();

        $x = $pdf->GetX();
        $y = $pdf->GetY();

        $style = array(
            'border' => true,
            'hpadding' => 'auto',
            'vpadding' => 'auto',
            'fgcolor' => array(0,0,0),
            'bgcolor' => false, //array(255,255,255),
            'text' => true,
            'font' => 'helvetica',
            'fontsize' => 8,
            'stretchtext' => 4
        );
        //$pdf->Cell(30, 1, 'EAN 13', 0, 1);
        $pdf->write1DBarcode($barcode, 'EAN13', '5', '6', '60', 14, 0.4, $style, 'N');

 }

我得到的结果就像是图像,或者以任何方式甚至不能输出我想要的条形码而且我不知道为什么。我很感激任何帮助

at 6

如果我使用     $pdf->write1DBarcode($barcode, 'EAN13', '5', '5', '60', 14, 0.4, $style, 'N');

at 5

没有空的pdf页面,但条形码仍然非常高。我希望它从顶部大约14毫米变为1/3,这就是为什么我试图摆弄y

中的write1DBarcode变量的原因

1 个答案:

答案 0 :(得分:3)

经过大量的摆弄,我发现了它。

添加

$pdf->SetAutoPageBreak(TRUE, 0);

使autobreak行为正确

我的猜测是默认情况下设置的底部边距是垂直对齐的,不能使用$ pdf-> SetMargins设置。在任何情况下,问题都解决了我。感谢您尝试提供帮助