Simple. Triple the page width and offset each label.
require 'code128.php';
$data = ['item_name' => 'Fuel Vapour Hose'
,'code_purchase' => 'ABC-2342'
,'code_sale' => 'DFS-4312'
,'item_code' => '47900001'
];
class Barcode_Label extends PDF_Code128 {
protected $data;
//constructor
public function __construct()
{
parent::__construct('L','mm',[190, 35]);
}
public function printLabel($data)
{
$this->setMargins(5,5,5);
$this->SetAutoPageBreak(0);
$this->AddPage();
$this->setFont('Times', 'B', 10);
for ($lab=0; $lab<3; $lab++) {
$offset = $lab * 65;
$this->setXY($offset, 5);
$this->Cell(50, 5, $data['item_name'], 0, 2, 'C');
$this->Cell(25, 5, $data['code_purchase'], 0, 0, 'C');
$this->Cell(25, 5, $data['code_sale'], 0, 2, 'C');
$barcode = $this->Code128($offset + 5,15,$data['item_code'],50,10);
$this->setXY($offset, 25);
$this->Cell(50, 5, $data['item_code'], 0, 1, 'C');
}
}
} #Barcode_Label
$label= new Barcode_Label();
for ($i=0; $i<3; $i++) {
$label->printLabel($data);
}
$label->Output();
[edit] PS I don't know your label dimensions so you may have to adjust offset, page size and margins