LDShadowLord

Print

Jul 3rd, 2013
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.54 KB | None | 0 0
  1. tArgs = {...}
  2. if tArgs = <2 then
  3.     print("Usage: Print <Receipt> <Title>")
  4. end
  5.  
  6. local function Print()
  7.     local sPrinterSide = nil
  8.     for n,sName in ipairs(peripheral.getNames()) do
  9.         if peripheral.isPresent(sName) and peripheral.getType(sName) == "printer" then
  10.             sPrinterSide = sName
  11.             break
  12.         end
  13.     end
  14.  
  15.     local nPage = 0
  16.     local printer = peripheral.wrap(sPrinterSide)
  17.     if printer.getInkLevel() < 1 then
  18.         sStatus = "Printer out of ink"
  19.         return
  20.     elseif printer.getPaperLevel() < 1 then
  21.         sStatus = "Printer out of paper"
  22.         return
  23.     end
  24.        
  25.     local terminal = {
  26.         getCursorPos = printer.getCursorPos,
  27.         setCursorPos = printer.setCursorPos,
  28.         getSize = printer.getPageSize,
  29.         write = printer.write,
  30.     }
  31.     terminal.scroll = function()
  32.         if nPage == 1 then
  33.             printer.setPageTitle(tArgs[2])         
  34.         end
  35.        
  36.         while not printer.newPage() do
  37.             if printer.getInkLevel() < 1 then
  38.                 sStatus = "Printer out of ink, please refill"
  39.             elseif printer.getPaperLevel() < 1 then
  40.                 sStatus = "Printer out of paper, please refill"
  41.             else
  42.                 sStatus = "Printer output tray full, please empty"
  43.             end
  44.             term.restore()
  45.            
  46.             local timer = os.startTimer(0.5)
  47.             sleep(0.5)
  48.         end
  49.             nPage = nPage + 1
  50.         if nPage == 1 then
  51.             printer.setPageTitle(tArgs[2])
  52.         else
  53.             printer.setPageTitle(tArgs[2])
  54.         end
  55.     end
  56.        
  57.     while not printer.endPage() do
  58.         sStatus = "Printer output tray full, please empty"
  59.         sleep( 0.5 )
  60.     end
  61.            
  62.     if nPage > 1 then
  63.         sStatus = "Printed "..nPage.." Pages"
  64.     else
  65.         sStatus = "Printed 1 Page"
  66.     end
  67. end
  68.  
  69. Print()
Advertisement
Add Comment
Please, Sign In to add comment