Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local printer -- printer var
- do
- -- find printer
- for _,side in pairs(redstone.getSides()) do
- if peripheral.getType(side) == "printer" then
- printer = peripheral.wrap(side)
- break;
- end
- end
- -- printer check
- if not printer then
- error("No printer block found!")
- end
- end
- local function checkPrinterLevels()
- -- check for ink
- if printer.getInkLevel() == 0 then
- print("Please insert Ink!")
- while printer.getInkLevel() == 0 do
- os.sleep(0.5)
- end
- end
- -- check for paper
- if printer.getPaperLevel() == 0 then
- print("Please insert Paper!")
- while printer.getPaperLevel == 0 do
- os.sleep(0.5)
- end
- end
- end
- -- checks passed, let's print somethin'
- local mw, mh
- local h = 1;
- local name;
- local docs = 0
- term.clear()
- term.setCursorPos(1,1)
- local function setupPage()
- term.clear()
- term.setCursorPos(1,1)
- printer.newPage() -- new page
- mw, mh = printer.getPageSize()
- h = 1
- printer.setCursorPos(1, h)
- print("Page Size:")
- print("Width: " .. mw)
- print("Height: " .. mh)
- print("")
- print("Name this page:")
- name = read()
- printer.setPageTitle(name)
- end
- local function findDocuments()
- for _,item in pairs(fs.list("")) do
- if string.find(item,".txt") then
- print(item)
- docs = docs + 1
- end
- end
- end
- local function writeLine(line)
- checkPrinterLevels() -- ensure printer can print
- printer.write(line)
- if h < mh + 1 then
- h = h + 1 -- track page length
- printer.setCursorPos(1,h)
- else
- printer.endPage() -- prints finished page.
- -- start new page
- setupPage();
- end
- end
- local function readDocument(doc)
- local line = ""
- repeat
- line = writeLine(doc.readLine())
- until line == nil
- end
- local function loadDocument()
- print("Please choose file")
- local file = read()
- term.clear()
- term.setCursorPos(1, 1)
- if fs.exists(file) then
- setupPage()
- term.clear()
- term.setCursorPos(1, 1)
- print("Document found... Printing!")
- local doc = fs.open(file,"r")
- readDocument(doc)
- doc.close()
- else
- error("Document not found!")
- end
- end
- findDocuments()
- if docs < 1 then
- error("No documents found!")
- end
- loadDocument()
- term.clear()
- term.setCursorPos(1,1)
- print("Print Finished!")
- print("Check printer for printed page(s)")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement