[New Plugin] Remote printing with PrintNode

Hi fellow bubblers,

I built and released a new plugin that connects to the PrintNode API and allows you to print remotely.

Link to plugin

This way you can trigger a printing job for a file in your databse on a printer that’s connected to a user’s computer from your app without going through the browsers printing dialog.

We are using it to automatically print shipping documents & labels from our packing stations for ecommerce shipments that are being packed in our warehouse.

Here’s a quick rundown on how to set it up:

  1. Sign up for an account on Remote Printing for Web Apps | PrintNode

  2. Download the Printnode client for the computer you want to print from, install it & log in

  3. After installation, the device and any installed printers will appear in the “Devices”-overview in your PrintNode dashboard.

  4. Copy your API key from the “API Keys” section in your PrintNode account

  5. Install the PrintNode plugin in your bubble app.

  6. Paste the API Key in the relevant fields.

Awesome! You’re all set up. :white_check_mark:

The plugin currently performs three actions: You can request a list of printers and submit printing jobs to your printer (with or without enhanced printing options).

How to send a basic printing job

Add a new action “Printnode - Print Document” and fill out the fields with the following info:

Printer_ID - id of your printer, you can find this ID in your Printnode app under “Devices” next to the respective printers name (usually an eight-digit number) REQUIRED
Printout_Title - the name of the document you want to print REQUIRED
Printout_URL - the URL where the document you wish to print can be found (this can be a PDF document or a RAW file, if you want to print from a printer that supports this) REQUIRED
print_source Where this print originated from (e.g. “my bubble app”) REQUIRED
content_type - You can print PDF (set to “pdf_uri”)and RAW (set to “raw_uri”) files from their URL or post base64 encoded PDF (set to “pdf_base64”) and RAW (set to “raw_base64”) files as text strings. Posting base64 encoded content is not recommended because the endpoint can time out and the file won’t be printed. REQUIRED

The workflow action will return the printjob’s id.

If you want to set up more options for the printjob, you can use the “Print Document (with Options)” workflow action and set up things like page rotation, select the paper tray of the printer, etc.

For more info, please feel free to ask questions here or refer to the printnode API documentation.

Happy printing!

9 Likes

Does this work on mobile?

Unfortunately not, there are no printing clients available for mobile devices.

Thanks

Hi

This is great - I have used Printnode (not with bubble) and it works really well - we were probably automatically printing circa 100,000 labels per year and it was very reliable. I am currently developing a Bubble App and will use this plugin!

1 Like

Great to hear! Right now the plugin functionality is limited to printing only. I am planning to add more functions like USB Weightscales, etc. later on.

Hi Manu,

Not integrated with Shipping scales but if you want someone to help test let me know… Was always interested in it!

How are you creating the shipping labels? I have looked at a few API’s but think i will go with Shipengine…

Thanks

We are creating most of our labels directly via DHL’s interface. For other carrier’s labels we use the provider shipcloud.io

Hi Maru!

Quick question! Do you think this could be altered to print POS receipts for a restaurant who would be taking orders online through a Bubble app? I am a novice when it comes to Bubble, and I am finding it hard to get any info on printing order tickets at the till for orders online… Any help would be much appreciated!

Hi David,

is the printer you want to use in the list of supported printers on Printnode’s website? I think Printnode supports a range of thermo printers (which is probably what you would use, right?) and printing in .raw format, but it is not supported in this plugin.

Hi @maru,

My app is throwing this error when trying to print:
Screenshot 2021-05-31 214552

Here’s my workflow:

Any help would be appreciated.

Thanks!

Try to add "Basic " in front of your API key (like in the image below). I didn’t mention this is in the doc, sorry about that.

Tried that but still getting an error.

Error:
Screenshot 2021-06-01 071041

I put a space in between Basic and my API key. Tried without and with a dash in between as well. Nada.

Anything else it can be?

Thanks

hey @doublejay

Turns out you need to base64 encode the API key that you can retrieve from your PrintNode account. You can use a service like https://www.base64encode.org/ to do that. Then paste the base64 encoded API key after "Basic ". That should do the job. Again sorry, for not adding this in the explanation.

Works!

Thanks for the help and the plugin :slight_smile:

1 Like

Interesting plugin thank you for sharing. I think i will have to try it out soon!

Just for curiosity…

Nowadays, most printers let you register an e-mail that will trigger the printing as soon as you send a file to it…

I mean, today I have an HP e-mail registered as xxxx@hpeprint.com. Every time I send an e-mail to this address, the print start printing the file.

What is the difference and advantage of use this PrintNode?

1 Like

not sure about that functionality as I have never used it. With the plugin you can also perform more “complicated” printing operations and select options for print (paper size, tray, dpi, etc.).

Hey, can I check my particular use case to see if this would work for me?

I’m building a pizza order app, and they already have an existing thermal printer, that’s hard wired connected to the router via ethernet.

they don’t have a central desktop device connected to any of their printers (they also deliver via Uber Eats + Deliveroo)

We would look to trigger a print job through Printnode when an order is placed via the Bubble app, without them needing to press anything (apart from maybe Accept Order, which they do from an Android tablet).

I’m aware Integromat offers Printnode support for automation, so could that work?

thanks for your time!

Emma

Hey Emma,

I am not familiar with the functionalities and integration possibilities of thermal printers.

For all other printers, the device they are connected to has to have the printnode client installed. This client triggers the printjob, without a connected device I am afraid it won’t work.

Please refer to Printnode’s documentation for more info on how to work with thermal printers and supported printers.

Thanks!

1 Like