Guest User

Untitled

a guest
Nov 19th, 2012
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.29 KB | None | 0 0
  1.     tArgs = {...}
  2.      
  3.     if #tArgs == 0 then
  4.             print( "Usage: " .. shell.getRunningProgram() .. " <path>" )
  5.             return
  6.     end
  7.     program = tArgs[1]
  8.          
  9.     if not fs.exists(program) then
  10.             printError( "File does not exist." )
  11.             return
  12.     end
  13.     if fs.isDir(program) then
  14.             printError( "Can't print a directory!" )
  15.             return
  16.     end
  17.      
  18.     function printF(sPath)
  19.             local sPrinterSide = nil
  20.             for n,sSide in ipairs(rs.getSides()) do
  21.                     if peripheral.isPresent(sSide) and peripheral.getType(sSide) == "printer" then
  22.                             sPrinterSide = sSide
  23.                             break
  24.                     end
  25.             end
  26.            
  27.             if not sPrinterSide then
  28.                     printError( "\nNo printer attached")
  29.                     return
  30.             end
  31.            
  32.             local nPage = 0
  33.             local printer = peripheral.wrap(sPrinterSide)
  34.             if printer.getInkLevel() < 1 then
  35.                     printError( "\nPrinter out of ink")
  36.                     return
  37.             elseif printer.getPaperLevel() < 1 then
  38.                     printError( "\nPrinter out of paper")
  39.                     return
  40.             end
  41.            
  42.             local terminal = {
  43.                     getCursorPos = printer.getCursorPos,
  44.                     setCursorPos = printer.setCursorPos,
  45.                     getSize = printer.getPageSize,
  46.                     write = printer.write,
  47.             }
  48.             terminal.scroll = function()
  49.                     if nPage == 1 then
  50.                             printer.setPageTitle( program.." (page "..nPage..")" )                
  51.                     end
  52.                    
  53.                     while not printer.newPage()     do
  54.                             if printer.getInkLevel() < 1 then
  55.                                     print( "\nPrinter out of ink, please refill")
  56.                             elseif printer.getPaperLevel() < 1 then
  57.                                     print( "\nPrinter out of paper, please refill")
  58.                             else
  59.                                     print( "\nPrinter output tray full, please empty")
  60.                             end
  61.      
  62.                             term.restore()
  63.                             redrawMenu()
  64.                             term.redirect( terminal )
  65.                            
  66.                             local timer = os.startTimer(0.5)
  67.                             sleep(0.5)
  68.                     end
  69.                     nPage = nPage + 1
  70.                     if nPage == 1 then
  71.                             printer.setPageTitle( program )
  72.                     else
  73.                             printer.setPageTitle( program.." (page "..nPage..")" )
  74.                     end
  75.             end
  76.            
  77.             while not printer.endPage() do
  78.                     print( "\nPrinter output tray full, please empty")
  79.                     sleep( 0.5 )
  80.             end
  81.             bMenu = true
  82.                    
  83.             if nPage > 1 then
  84.                     print( "\nPrinted "..nPage.." Pages")
  85.             else
  86.                     print( "\nPrinted 1 Page")
  87.             end
  88.      
  89.     end
  90.      
  91.     printF(program)
Advertisement
Add Comment
Please, Sign In to add comment