An iOS Application that prints office documents and PDF files to Unix printers in NUS School Of Computing.
Swift Objective-C
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
NUS SOC Print.xcodeproj
NUS SOC Print.xcworkspace
NUS SOC PrintTests


An iOS-Swift application that prints office documents and PDF files to Unix printers in NUS School Of Computing via SSH. The Android version exists here.

This app has been approved on the App Store. If you want to know more, I have written a user/dev guide that can be found in the user-dev-guide directory.


  1. Print PDF, DOC, DOCX, PPT, PPTX and ODT files
  2. Page range to be printed
  3. Remaining quota check
  4. Print Status Check
  5. Page formatting for documents
  6. Accepts file exports from other apps like IVLE, Dropbox, Google Drive and the web browser.
  7. Deleting of existing job in print queue
  8. Runs on iOS7.0 and up for maximum compatibility

##The original HacknRoll 2014 Video
Narrated by Yong Quan


View more screenshots in the screenshots directory.


  1. Swift 2 language
  2. Xcode 7
  3. Cocoapods
  4. NMSSH SSH library (installed via Cocoapods)
  5. Google Analytics (installed via Cocoapods)

Libraries placed internally

  1. Identify device type
  2. Docs to PDF converter (Included in repo). From another project of mine.
  3. nup_pdf PDF formatter
  4. Multivalent PDF formatter

##Compiling the project

  1. Swift is only available from Xcode 6 so you have to use that.
  2. Install Cocoapods sudo gem install cocoapods.
  3. Change directory to where you pulled the project and run pod install.
  4. Open the project using NUS SOC Print.xcworkspace instead of the .xcodeproject file.
  5. You may need to adjust the team name to deploy on your personal device. Go to Project Settings, General, NUS SOC Print Target. Choose None or your team name from the drop down menu.

##Special thanks to:

  1. Kai Yao and Yong Quan for the initial codes and design.
  2. Lenny for the app icon.
  3. Zit Seng's help on Sunfire and advice on NUS's intellectual property issues
  4. My CS3217 Prof Khe Chai for the initial guidance on publishing iOS apps.
  5. Vishnu's advice on iOS App submissions.


  1. Display UIViewController as Popup
  2. Update View Controller when application did become active
  3. Solve weird linker problems
  4. Solve issue of scrollview not scrolling