Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

Front End Script for Setting HP Printer LCD Status

By: a guest on Nov 15th, 2012  |  syntax: PHP  |  size: 2.04 KB  |  views: 29  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
This paste has a previous version, view the difference. Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1. <?php
  2.  
  3. $msg =  "Your first line     "; // first line (20 chars max)
  4. $msg .= "                    "; // second line, comment this out if your display is one line only
  5.  
  6. if(isset($_GET['firstLine'])) {
  7.         $firstLine = $_GET['firstLine'];
  8.         $len  = strlen($firstLine);
  9.         if($len > 20) {
  10.                 $firstLine = substr($firstLine, 0, 19);
  11.          } else {
  12.                 str_pad($firstLine, 20);
  13.         }
  14.         $msg = $firstLine;
  15.  
  16.         if(isset($_GET['secondLine'])) {
  17.                 $secondLine = $_GET['secondLine'];
  18.                 $len  = strlen($secondLine);
  19.                 if($len > 20) {
  20.                         $secondLine = substr($secondLine, 0, 19);
  21.                 }
  22.                 $msg .= $secondLine;
  23.         }
  24.  
  25.         $msg = preg_replace("/[^A-Za-z0-9?![:space:]]/","",$msg); // strip any ASCII commands (eg newlines because they will break the command and print a page) use this if accepting user input.
  26.         $msg = substr($msg,0,40); // (optional) truncate message to 40 characters (2 lines)
  27.  
  28.         $printerIP = '127.0.0.1'; // IPV4 (a.b.c.d) obviously change to your printer IP
  29.  
  30.         $socket = socket_create(AF_INET,SOCK_STREAM,SOL_TCP);
  31.         socket_connect($socket,$printerIP,9100) or die("Could not connect to printer.");
  32.         $data = chr(27) . "%-12345X@PJL JOB" . chr(13) . chr(10) .
  33.         "@PJL RDYMSG DISPLAY=\"$msg\"" . chr(13) . chr(10) .
  34.         "@PJL EOJ" . chr(13) . chr(10) .
  35.         chr(27) . "%-12345X";
  36.         socket_write($socket, $data) or die("Could not write to printer. Check connections.");
  37.  
  38.         echo "<strong>Printer status set to:<br>" . $firstLine . "<br>" . $secondLine . "</strong><br>";
  39. }
  40.  
  41. ?>
  42. <!doctype html>
  43. <html lang="en">
  44. <head>
  45.         <meta charset="utf-8">
  46.         <title>Set HP Printer LCD Status</title>
  47. </head>
  48. <body>
  49.         <form method="GET">
  50.                 <table>
  51.                         <tr>
  52.                                 <td><label for="firstLine">First line (20 chars max):</label></td>
  53.                                 <td><input type="text" id="firstLie" name="firstLine" size="20"></td>
  54.                         </tr>
  55.                         <tr>
  56.                                 <td><label for="secondLine">Second line (20 chars max):</label></td>
  57.                                 <td><input type="text" id="secondLie" name="secondLine" size="20"></td>
  58.                         </tr>
  59.                         <tr>
  60.                                 <td></td>
  61.                                 <td><input type="submit" value="Submit"></td>
  62.                         </tr>
  63.         </form>
  64. </body>
  65. </html>