printlib/printlib.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;
}
}
?>