Direct printing in a cloud application

Having a cloud solution is really cool, you can access the system anywhere and from any device - notebook, mobile or tablet. There are other advantages, like working remotely without boring settings and using a VPN to access your company network. Everything seems to be going great until you need to access local devices from your application. This is something that we have to deal with at Mews.

Our application is running somewhere in Europe and we have no idea which devices are available in a hotel - printers, payment terminals, fiscal memory devices or encoders for a creating an RFID key for opening doors and many others. In the beginning, we had to deal with requests that we should be able to print a registration card directly from the application. Of course, you can always print a page or pdf directly from your browser, but you need to go through printer dialog; it's not user-friendly, it's boring and it’s forcing a user to click more than they’re used to. We wanted to allow users to interact with their local devices in a smarter way.

Imagine, printer(s) can be named (front office, back office,...) so it's pretty clear where you would like to print. We wanted to offer this personalized experience to our users, so we enabled to them create printers with names in our system that represent real printers on their local network. This means they can press a button - print on "printer A" and everything else is automatically handled by us.

How does it work? We developed a small windows WPF application which is running in a hotel. It's called windows connector. This application is built on top of our existing public API. Every time a user presses print in a browser, it creates a command entity containing all necessary metadata, such as target printer and the content to be printed. The connector application is notified via websockets about a new command that is ready for processing and on receipt of this notification, a system printing task is the only thing that has to be created.

The great thing about this application is that employees of the hotel have no idea that it exists. The Mews Connector is installed once when a new hotel is being on-boarded and then it just works.

It’s not just about printing! We have other modules which can create magnetic keys, allowing you to access your room, and another to charge credit cards with terminals. More detail about creating keys, creating payments with terminals and how we deploy updates to the application will be discussed in the next article.

Learn more about how we do things in Mews on our Github and Twitter.