mirror of
https://github.com/opensourcepos/opensourcepos.git
synced 2026-01-25 01:37:59 -05:00
97 lines
2.7 KiB
PHP
97 lines
2.7 KiB
PHP
<?php
|
|
define('IN_CB', true);
|
|
include_once(APPPATH."libraries/barcodegen/html/include/function.php");
|
|
|
|
function showError() {
|
|
header('Content-Type: image/png');
|
|
readfile('error.png');
|
|
exit;
|
|
}
|
|
|
|
$requiredKeys = array('code', 'filetype', 'dpi', 'scale', 'rotation', 'font_family', 'font_size', 'text');
|
|
|
|
// Check if everything is present in the request
|
|
foreach ($requiredKeys as $key) {
|
|
if (!isset($_GET[$key])) {
|
|
showError();
|
|
}
|
|
}
|
|
|
|
if (!preg_match('/^[A-Za-z0-9]+$/', $_GET['code'])) {
|
|
showError();
|
|
}
|
|
|
|
$code = $_GET['code'];
|
|
$test = getcwd();
|
|
// Check if the code is valid
|
|
if (!file_exists(APPPATH."libraries/barcodegen/html/config/" . $code . '.php')) {
|
|
showError();
|
|
}
|
|
|
|
include_once(APPPATH."libraries/barcodegen/html/config/" . $code . '.php');
|
|
|
|
$class_dir = APPPATH."libraries/barcodegen/" . 'class';
|
|
require_once($class_dir . DIRECTORY_SEPARATOR . 'BCGColor.php');
|
|
require_once($class_dir . DIRECTORY_SEPARATOR . 'BCGBarcode.php');
|
|
require_once($class_dir . DIRECTORY_SEPARATOR . 'BCGDrawing.php');
|
|
require_once($class_dir . DIRECTORY_SEPARATOR . 'BCGFontFile.php');
|
|
|
|
if (!include_once($class_dir . DIRECTORY_SEPARATOR . $classFile)) {
|
|
showError();
|
|
}
|
|
|
|
include_once(APPPATH."libraries/barcodegen/html/config/". $baseClassFile);
|
|
$filetypes = array('PNG' => BCGDrawing::IMG_FORMAT_PNG, 'JPEG' => BCGDrawing::IMG_FORMAT_JPEG, 'GIF' => BCGDrawing::IMG_FORMAT_GIF);
|
|
|
|
$drawException = null;
|
|
try {
|
|
$color_black = new BCGColor(0, 0, 0);
|
|
$color_white = new BCGColor(255, 255, 255);
|
|
|
|
$code_generated = new $className();
|
|
|
|
if (function_exists('baseCustomSetup')) {
|
|
baseCustomSetup($code_generated, $_GET);
|
|
}
|
|
|
|
if (function_exists('customSetup')) {
|
|
customSetup($code_generated, $_GET);
|
|
}
|
|
|
|
$code_generated->setScale(max(1, min(4, $_GET['scale'])));
|
|
$code_generated->setBackgroundColor($color_white);
|
|
$code_generated->setForegroundColor($color_black);
|
|
|
|
if ($_GET['text'] !== '') {
|
|
$text = convertText($_GET['text']);
|
|
$code_generated->parse($text);
|
|
}
|
|
} catch(Exception $exception) {
|
|
$drawException = $exception;
|
|
}
|
|
|
|
$drawing = new BCGDrawing('', $color_white);
|
|
if($drawException) {
|
|
$drawing->drawException($drawException);
|
|
} else {
|
|
$drawing->setBarcode($code_generated);
|
|
$drawing->setRotationAngle($_GET['rotation']);
|
|
$drawing->setDPI($_GET['dpi'] === 'NULL' ? null : max(72, min(300, intval($_GET['dpi']))));
|
|
$drawing->draw();
|
|
}
|
|
|
|
switch ($_GET['filetype']) {
|
|
case 'PNG':
|
|
header('Content-Type: image/png');
|
|
break;
|
|
case 'JPEG':
|
|
header('Content-Type: image/jpeg');
|
|
break;
|
|
case 'GIF':
|
|
header('Content-Type: image/gif');
|
|
break;
|
|
}
|
|
|
|
$drawing->finish($filetypes[$_GET['filetype']]);
|
|
?>
|