Ogólnie samo w sobie nie bardzo w bibliotece, musisz się ogólnie pobawić w php nad generowaniem tego obrazka.
Obrazek został wygenerowany przy pomocy tej biblioteki, którą wskazałeś, trzeba by go troszkę dopracować, ale ogólnie działa.
<?php
require 'vendor/autoload.php';
// Sprawdź dostępność GD Library
if (!function_exists('imagecreatefromstring')) {
die('GD Library nie jest zainstalowana. Zainstaluj GD Library i spróbuj ponownie.');
}
use Picqer\Barcode\BarcodeGeneratorJPG;
// Sprawdź dostępność czcionki
$fontPath = '/Verdana.ttf'; // Ścieżka do pliku z czcionką TrueType
if (!file_exists($fontPath)) {
die('Czcionka nie jest dostępna w podanej lokalizacji. Sprawdź ścieżkę do pliku z czcionką i spróbuj ponownie.');
}
// Generuj kod kreskowy
$generator = new BarcodeGeneratorJPG();
$barcode = $generator->getBarcode('081231723897', $generator::TYPE_EAN_13);
// Utwórz obiekt obrazu GD z pliku JPG
$im = imagecreatefromstring($barcode);
// Ustaw kolor tekstu na czarny
$color = imagecolorallocate($im, 0, 0, 0);
// Ustaw czcionkę i rozmiar tekstu dla nazwy produktu
$fontSize = 16;
// Ustaw położenie tekstu nazwy produktu
$textX = 10;
$textY = 20;
// Dodaj tekst nazwy produktu
$textProductName = 'Nazwa produktu';
// Ustaw położenie kodu kreskowego
$barcodeX = 10;
$barcodeY = $textY + 30; // Przesunięcie o wysokość tekstu plus 30 px
// Stwórz nowy obrazek zwiększając jego wysokość
$newHeight = $textY + imagesy($im) + 40; // Dodatkowa wysokość 40 px (30 px dla tekstu, 10 px na margines)
$newImage = imagecreatetruecolor(imagesx($im), $newHeight);
imagefill($newImage, 0, 0, imagecolorallocate($newImage, 255, 255, 255)); // Wypełnij białym tłem
// Dodaj tekst nazwy produktu na nowym obrazie
imagettftext($newImage, $fontSize, 0, $textX, $textY, $color, $fontPath, $textProductName);
// Dodaj kod kreskowy na nowym obrazie
imagecopy($newImage, $im, $barcodeX, $barcodeY, 0, 0, imagesx($im), imagesy($im));
// Utwórz unikalną nazwę pliku zgodnie z aktualną godziną
$filename = 'barcode_with_text_' . date('Ymd_His') . '.jpg';
// Zapisz nowy obraz do pliku JPG
imagejpeg($newImage, $filename);
// Zniszcz obiekty obrazu GD
imagedestroy($im);
imagedestroy($newImage);
echo 'Zapisano obrazek jako ' . $filename;
?>