Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- tArgs = {...}
- if #tArgs == 0 then
- print( "Usage: " .. shell.getRunningProgram() .. " <path>" )
- return
- end
- program = tArgs[1]
- if not fs.exists(program) then
- printError( "File does not exist." )
- return
- end
- if fs.isDir(program) then
- printError( "Can't print a directory!" )
- return
- end
- function printF(sPath)
- local sPrinterSide = nil
- for n,sSide in ipairs(rs.getSides()) do
- if peripheral.isPresent(sSide) and peripheral.getType(sSide) == "printer" then
- sPrinterSide = sSide
- break
- end
- end
- if not sPrinterSide then
- printError( "\nNo printer attached")
- return
- end
- local nPage = 0
- local printer = peripheral.wrap(sPrinterSide)
- if printer.getInkLevel() < 1 then
- printError( "\nPrinter out of ink")
- return
- elseif printer.getPaperLevel() < 1 then
- printError( "\nPrinter out of paper")
- return
- end
- local terminal = {
- getCursorPos = printer.getCursorPos,
- setCursorPos = printer.setCursorPos,
- getSize = printer.getPageSize,
- write = printer.write,
- }
- terminal.scroll = function()
- if nPage == 1 then
- printer.setPageTitle( program.." (page "..nPage..")" )
- end
- while not printer.newPage() do
- if printer.getInkLevel() < 1 then
- print( "\nPrinter out of ink, please refill")
- elseif printer.getPaperLevel() < 1 then
- print( "\nPrinter out of paper, please refill")
- else
- print( "\nPrinter output tray full, please empty")
- end
- term.restore()
- redrawMenu()
- term.redirect( terminal )
- local timer = os.startTimer(0.5)
- sleep(0.5)
- end
- nPage = nPage + 1
- if nPage == 1 then
- printer.setPageTitle( program )
- else
- printer.setPageTitle( program.." (page "..nPage..")" )
- end
- end
- while not printer.endPage() do
- print( "\nPrinter output tray full, please empty")
- sleep( 0.5 )
- end
- bMenu = true
- if nPage > 1 then
- print( "\nPrinted "..nPage.." Pages")
- else
- print( "\nPrinted 1 Page")
- end
- end
- printF(program)
Advertisement
Add Comment
Please, Sign In to add comment