У меня есть следующий код для отображения привет штрих-кода, я использую PHP 7;
<?php
require('barcodegen.1d-php5.v5.2.1/class/BCGcode128.barcode.php');
require('barcodegen.1d-php5.v5.2.1/class/BCGDrawing.php');
$code = new BCGcode128();
$code->parse('Hello');
$drawing = new BCGDrawing();
$drawing->setBarcode($code);
$drawing->draw();
?>
Но я получаю эту ошибку:
Fatal error: Uncaught TypeError: Argument 2 passed to BCGDrawing::__construct() must be an instance of BCGColor, none given, called in C:\xampp\htdocs\PHP\700.php on line 8 and defined in C:\xampp\htdocs\PHP\barcodegen.1d-php5.v5.2.1\class\BCGDrawing.php:40 Stack trace: #0 C:\xampp\htdocs\PHP\700.php(8): BCGDrawing->__construct() #1 {main} thrown in C:\xampp\htdocs\PHP\barcodegen.1d-php5.v5.2.1\class\BCGDrawing.php on line 40
Я погуглил эту ошибку, и решение не найдено !!!!!
Вы можете найти определение конструктора BCGDrawing
класс в файле определения:
public function __construct($filename = null, BCGColor $color)
Кроме того, в zip-библиотеке библиотеки, которую вы скачали, есть html-папка. В этой папке есть файл с именем image.php
и в этом файле (строка 74) есть этот код:
$drawing = new BCGDrawing('', $color_white);
Если вы прокрутите немного вверх (строка 50), вы увидите следующее:
$color_white = new BCGColor(255, 255, 255);
РЕДАКТИРОВАТЬ
Я посмотрел на образец, включенный в библиотеку, и изменил ваш код, чтобы сделать рабочий тест:
require('barcodegen.1d-php5.v5.2.1/class/BCGcode128.barcode.php');
require('barcodegen.1d-php5.v5.2.1/class/BCGDrawing.php');
header('Content-Type: image/png');
$color_white = new BCGColor(255, 255, 255);
$code = new BCGcode128();
$code->parse('Hello');
$drawing = new BCGDrawing('', $color_white);
$drawing->setBarcode($code);
$drawing->draw();
$drawing->finish(BCGDrawing::IMG_FORMAT_PNG);
Других решений пока нет …