?iť?
Current Path : /home/scgforma/www/soc064/htdocs/includes/mike42/escpos-php/example/ |
Current File : /home/scgforma/www/soc064/htdocs/includes/mike42/escpos-php/example/character-tables.php |
<?php /** * This demo prints out supported code pages on your printer. This is intended * for debugging character-encoding issues: If your printer does not work with * a built-in capability profile, you need to check its documentation for * supported code pages. * * These are then loaded into a capability profile, which maps code page * numbers to iconv encoding names on your particular printer. This script * will print all configured code pages, so that you can check that the chosen * iconv encoding name matches the actual code page contents. * * If this is correctly set up for your printer, then the driver will try its * best to map UTF-8 text into these code pages for you, allowing you to accept * arbitrary input from a database, without worrying about encoding it for the printer. */ require_once(dirname(__FILE__) . "/../Escpos.php"); // Enter connector and capability profile (to match your printer) $connector = new FilePrintConnector("php://stdout"); $profile = DefaultCapabilityProfile::getInstance(); $verbose = false; // Skip tables which iconv wont convert to (ie, only print characters available with UTF-8 input) /* Print a series of receipts containing i18n example strings - Code below shouldn't need changing */ $printer = new Escpos($connector, $profile); $codePages = $profile -> getSupportedCodePages(); $first = true; // Print larger table for first code-page. foreach($codePages as $table => $name) { /* Change printer code page */ $printer -> selectCharacterTable(255); $printer -> selectCharacterTable($table); /* Select & print a label for it */ $label = $name; if($name === false) { $label= " (not matched to iconv table)"; } $printer -> setEmphasis(true); $printer -> textRaw("Table $table: $label\n"); $printer -> setEmphasis(false); if($name === false && !$verbose) { continue; // Skip non-recognised } /* Print a table of available characters (first table is larger than subsequent ones */ if($first) { $first = false; compactCharTable($printer, 1, true); } else { compactCharTable($printer); } } $printer -> cut(); $printer -> close(); function compactCharTable($printer, $start = 4, $header = false) { /* Output a compact character table for the current encoding */ $chars = str_repeat(' ', 256); for($i = 0; $i < 255; $i++) { $chars[$i] = ($i > 32 && $i != 127) ? chr($i) : ' '; } if($header) { $printer -> setEmphasis(true); $printer -> textRaw(" 0123456789ABCDEF0123456789ABCDEF\n"); $printer -> setEmphasis(false); } for($y = $start; $y < 8; $y++) { $printer -> setEmphasis(true); $printer -> textRaw(strtoupper(dechex($y * 2)) . " "); $printer -> setEmphasis(false); $printer -> textRaw(substr($chars, $y * 32, 32) . "\n"); } }