gabtzi
gabtzi

Reputation: 603

How to manually position a barcode in tcpdf

I'm trying to add some barcodes programmatically in a pdf file but I think I'm not understanding something correctly regarding positioning.Here's my code

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

 }

The result I get is like the image or in any way not even close to outputting the barcode where I'd like it to be and I have no clue why. I'd appreciate any help

at 6

if i use $pdf->write1DBarcode($barcode, 'EAN13', '5', '5', '60', 14, 0.4, $style, 'N');

at 5

There is no empty pdf page but the barcode is still really high. I'd like it to go like 1/3 from top around 14mm that's why I was trying to fiddle with the y variable in write1DBarcode

Upvotes: 2

Views: 12934

Answers (2)

Kamlesh Kumar
Kamlesh Kumar

Reputation: 21

enter image description hereUse Below code

<?php $params = $pdf->serializeTCPDFtagParameters(array('5027010247321', 'C39', '', '', 80, 30, 0.4, array('position'=>'S', 'border'=>true, 'padding'=>4, 'fgcolor'=>array(0,0,0), 'bgcolor'=>array(255,255,255), 'text'=>true, 'font'=>'helvetica', 'fontsize'=>8, 'stretchtext'=>4), 'N'));
?>

And paste these below line where you want tcpdf baarcode 

<tcpdf method="write1DBarcode" params="<?php echo $params; ?>" />

Visit [https://www.youtube.com/watch?v=flXFPbKRmUo][2]

Upvotes: 0

gabtzi
gabtzi

Reputation: 603

After lots of fiddling around I found it.

Adding

$pdf->SetAutoPageBreak(TRUE, 0);

Made the autobreak behave correctly

My guess is that a bottom margin set by default that was messing around the alignment vertically that can't be set using $pdf->SetMargins. In any case problem solved for me. Thanks for trying to help

Upvotes: 3

Related Questions