*/ require __DIR__ . '/../vendor/autoload.php'; use Zelda\EscposPhp\Printer; use Zelda\EscposPhp\PrintConnectors\FilePrintConnector; use Zelda\EscposPhp\EscposImage; $connector = new FilePrintConnector("php://stdout"); $printer = new Printer($connector); /* Initialize */ $printer->initialize(); /* Text */ $printer->text("Hello world\n"); $printer->cut(); /* Line feeds */ $printer->text("ABC"); $printer->feed(7); $printer->text("DEF"); $printer->feedReverse(3); $printer->text("GHI"); $printer->feed(); $printer->cut(); /* Font modes */ $modes = array( Printer::MODE_FONT_B, Printer::MODE_EMPHASIZED, Printer::MODE_DOUBLE_HEIGHT, Printer::MODE_DOUBLE_WIDTH, Printer::MODE_UNDERLINE ); for ($i = 0; $i < pow(2, count($modes)); $i++) { $bits = str_pad(decbin($i), count($modes), "0", STR_PAD_LEFT); $mode = 0; for ($j = 0; $j < strlen($bits); $j++) { if (substr($bits, $j, 1) == "1") { $mode |= $modes[$j]; } } $printer->selectPrintMode($mode); $printer->text("ABCDEFGHIJabcdefghijk\n"); } $printer->selectPrintMode(); // Reset $printer->cut(); /* Underline */ for ($i = 0; $i < 3; $i++) { $printer->setUnderline($i); $printer->text("The quick brown fox jumps over the lazy dog\n"); } $printer->setUnderline(0); // Reset $printer->cut(); /* Cuts */ $printer->text("Partial cut\n(not available on all printers)\n"); $printer->cut(Printer::CUT_PARTIAL); $printer->text("Full cut\n"); $printer->cut(Printer::CUT_FULL); /* Emphasis */ for ($i = 0; $i < 2; $i++) { $printer->setEmphasis($i == 1); $printer->text("The quick brown fox jumps over the lazy dog\n"); } $printer->setEmphasis(false); // Reset $printer->cut(); /* Double-strike (looks basically the same as emphasis) */ for ($i = 0; $i < 2; $i++) { $printer->setDoubleStrike($i == 1); $printer->text("The quick brown fox jumps over the lazy dog\n"); } $printer->setDoubleStrike(false); $printer->cut(); /* Fonts (many printers do not have a 'Font C') */ $fonts = array( Printer::FONT_A, Printer::FONT_B, Printer::FONT_C ); for ($i = 0; $i < count($fonts); $i++) { $printer->setFont($fonts[$i]); $printer->text("The quick brown fox jumps over the lazy dog\n"); } $printer->setFont(); // Reset $printer->cut(); /* Justification */ $justification = array( Printer::JUSTIFY_LEFT, Printer::JUSTIFY_CENTER, Printer::JUSTIFY_RIGHT ); for ($i = 0; $i < count($justification); $i++) { $printer->setJustification($justification[$i]); $printer->text("A man a plan a canal panama\n"); } $printer->setJustification(); // Reset $printer->cut(); /* Barcodes - see barcode.php for more detail */ $printer->setBarcodeHeight(80); $printer->setBarcodeTextPosition(Printer::BARCODE_TEXT_BELOW); $printer->barcode("9876"); $printer->feed(); $printer->cut(); /* Graphics - this demo will not work on some non-Epson printers */ try { $logo = EscposImage::load("resources/escpos-php.png", false); $imgModes = array( Printer::IMG_DEFAULT, Printer::IMG_DOUBLE_WIDTH, Printer::IMG_DOUBLE_HEIGHT, Printer::IMG_DOUBLE_WIDTH | Printer::IMG_DOUBLE_HEIGHT ); foreach ($imgModes as $mode) { $printer->graphics($logo, $mode); } } catch (Exception $e) { /* Images not supported on your PHP, or image file not found */ $printer->text($e->getMessage() . "\n"); } $printer->cut(); /* Bit image */ try { $logo = EscposImage::load("resources/escpos-php.png", false); $imgModes = array( Printer::IMG_DEFAULT, Printer::IMG_DOUBLE_WIDTH, Printer::IMG_DOUBLE_HEIGHT, Printer::IMG_DOUBLE_WIDTH | Printer::IMG_DOUBLE_HEIGHT ); foreach ($imgModes as $mode) { $printer->bitImage($logo, $mode); } } catch (Exception $e) { /* Images not supported on your PHP, or image file not found */ $printer->text($e->getMessage() . "\n"); } $printer->cut(); /* QR Code - see also the more in-depth demo at qr-code.php */ $testStr = "Testing 123"; $models = array( Printer::QR_MODEL_1 => "QR Model 1", Printer::QR_MODEL_2 => "QR Model 2 (default)", Printer::QR_MICRO => "Micro QR code\n(not supported on all printers)" ); foreach ($models as $model => $name) { $printer->qrCode($testStr, Printer::QR_ECLEVEL_L, 3, $model); $printer->text("$name\n"); $printer->feed(); } $printer->cut(); /* Pulse */ $printer->pulse(); /* Always close the printer! On some PrintConnectors, no actual * data is sent until the printer is closed. */ $printer->close();