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

How to manually position a barcode in tcpdf

我正在尝试以编程方式在 pdf 文件中添加一些条形码,但我认为我没有正确理解 positioning.Here 的代码

    $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');

 }

我得到的结果就像图像一样,或者在任何方面都没有接近输出我想要的条形码,我不知道为什么。我会很感激任何帮助

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

没有空的pdf页面,但条码仍然很高。我希望它从顶部移动 1/3 大约 14 毫米,这就是为什么我试图 fiddle 和 write1DBarcode

中的 y 变量

经过大量的摆弄,我找到了它。

添加

$pdf->SetAutoPageBreak(TRUE, 0);

使自动中断行为正确

我的猜测是默认设置的下边距扰乱了垂直对齐方式,无法使用 $pdf->SetMargins 进行设置。无论如何,问题都为我解决了。感谢您的帮助