128 lines
3.3 KiB
PHP
128 lines
3.3 KiB
PHP
<?php
|
|
define("MAX_CHAR", 32);
|
|
define("MAX_STR", 32);
|
|
define("ESC", "\x1b");
|
|
define("GS", "\x1d");
|
|
define("LF", "\x0a");
|
|
define("PORT", "/dev/usb/lp0");
|
|
function rawlen($data) {
|
|
if (strlen($data)<255 and strlen($data)<MAX_CHAR) {
|
|
if (strlen($data)<16) {
|
|
return hex2bin("0" . dechex(strlen($data)));
|
|
} else {
|
|
return hex2bin(dechex(strlen($data)));
|
|
}
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
function initprint() {
|
|
return file_put_contents(PORT, ESC . "@");
|
|
}
|
|
function println($data) {
|
|
if (strlen($data)<MAX_CHAR) {
|
|
return file_put_contents(PORT, $data . LF);
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
function printcode39($data) {
|
|
if (rawlen($data) and strlen($data)<8) {
|
|
$lp=fopen(PORT, 'w');
|
|
fwrite($lp, "\x1dh\x50");
|
|
fwrite($lp, "\x1dH\x02");
|
|
fwrite($lp, "\x1df\x01");
|
|
fwrite($lp, "\x1dk\x45");
|
|
fwrite($lp, rawlen($data));
|
|
fwrite($lp, $data);
|
|
fwrite($lp, "\x0a");
|
|
fclose($lp);
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
function printcode128($data) {
|
|
if (rawlen($data) and strlen($data)<9) {
|
|
$lp=fopen(PORT, 'w');
|
|
fwrite($lp, "\x1dh\x50");
|
|
fwrite($lp, "\x1dH\x02");
|
|
fwrite($lp, "\x1df\x01");
|
|
fwrite($lp, "\x1dk\x49");
|
|
fwrite($lp, rawlen($data));
|
|
fwrite($lp, $data);
|
|
fwrite($lp, "\x0a");
|
|
fclose($lp);
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
function printean13($data) {
|
|
if (rawlen($data) and (strlen($data) == 12 or strlen($data) == 13)) {
|
|
$lp=fopen(PORT, 'w');
|
|
fwrite($lp, "\x1dh\x50");
|
|
fwrite($lp, "\x1dH\x02");
|
|
fwrite($lp, "\x1df\x01");
|
|
fwrite($lp, "\x1dk\x43");
|
|
fwrite($lp, rawlen($data));
|
|
fwrite($lp, $data);
|
|
fwrite($lp, "\x0a");
|
|
fclose($lp);
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
function printean8($data) {
|
|
if (rawlen($data) and (strlen($data) == 7 or strlen($data) == 8)) {
|
|
$lp=fopen(PORT, 'w');
|
|
fwrite($lp, "\x1dh\x50");
|
|
fwrite($lp, "\x1dH\x02");
|
|
fwrite($lp, "\x1df\x01");
|
|
fwrite($lp, "\x1dk\x44");
|
|
fwrite($lp, rawlen($data));
|
|
fwrite($lp, $data);
|
|
fwrite($lp, "\x0a");
|
|
fclose($lp);
|
|
return true;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
function rawdlen($data) {
|
|
$len = strlen($data);
|
|
$l = ($len + 3) % 256;
|
|
$h = intdiv($len / 256);
|
|
if ($l<16) {
|
|
$l=hex2bin("0" . dechex($l));
|
|
} else {
|
|
$l=hex2bin(dechex($l));
|
|
}
|
|
if ($h<16) {
|
|
$h=hex2bin("0" . dechex($h));
|
|
} else {
|
|
$h=hex2bin(dechex($h));
|
|
}
|
|
return $l . $h;
|
|
}
|
|
function printqr($data, $size) {
|
|
if (strlen($data)<7088) {
|
|
if ($size<16) {
|
|
$encs=hex2bin("0" . dechex($size));
|
|
} else {
|
|
$encs=hex2bin(dechex($size));
|
|
}
|
|
$lp=fopen("/dev/usb/lp0", 'w');
|
|
fwrite($lp, GS . "(k\x04\x00\x31\x41\x32\x00");
|
|
fwrite($lp, GS . "(k\x03\x00\x31\x43" . $encs);
|
|
fwrite($lp, GS . "(k\x03\x00\x31\x45\x30");
|
|
fwrite($lp, GS . "(k" . rawdlen($data) . "\x31\x50\x30" . $data);
|
|
fwrite($lp, GS . "(k\x03\x00\x31\x51\x30");
|
|
#fwrite($lp, "\x0a");
|
|
fclose($lp);
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
?>
|