DIY Replacement for Google Cloud Print (Shutting Down Today)

With Google Cloud Print shutting down today, I decided to try building an app that would auto-print files as they are generated from a workflow.

This is a 2-Part Challenge:

  • Getting the cloud file out of AppSheet and onto the local machine
  • Auto printing files as they arrive

And each part has a different solution depending on the OS of the device connected to the printer (Mac, Windows, Linux), and which storage provider you’re using (Google Drive, OneDrive, Dropbox, etc.).


This solution is for Mac users, but the same technique could be used on Windows, by replacing the Automator folder action with a VB Script, Power Shell, Auto Hotkey, etc.

  1. Install Google Backup & Sync (or OneDrive, Dropbox, etc), and login with the same account as you use for AppSheet.
  2. (Recommended) Select Sync only these folders and only select the app’s file/image folder (where workflow files are saved).
    Screen Shot 2020-12-31 at 7.49.56 AM

NOTE: ALL FILES in your root My Drive folder will sync, no matter which settings you choose. Move everything to a new folder FIRST to keep from syncing.

  1. Run a test workflow and make sure new files are syncing to your local machine.
  2. Create a new Folder Action in Automator, select the folder, and add the step “Print Finder Items”

In my tests, the files showed up on the local machine at almost the same instant that the sheet change occurred, and printing automatically started just a few seconds later!

This works great for a single app, but I can’t figure out a way to print from multiple apps without monitoring each folder. An app can only save images to a subfolder of the app’s default folder.

Ideally, I’d like to be able to monitor the same one folder, and send all print requests from all apps in my account to that one folder. I tried with webhooks, but you can only send the row data.

You can send a link to the file from one app to another, but that doesn’t create a NEW file in the receiving app’s default folder. I could use Integromat to copy files from other apps into my one “print queue” folder, but I’d prefer to find a native AppSheet solution.

Does anyone have any ideas on how one app could create a file in another app’s folder, without using some external integration?

7 Likes

With the old Google feature as “Add to my Drive” you can have all files in the same folder. You can activate it with Shift+z.

4 Likes

Nice one mate! partyparrot (Appsheet)

In order for the app to have access to a folder, you’d need something inside the app that’s stored in that source - like a table.

Then your app would have authorized access to the folder (from your appsheet account accessing the folder) and you could easily affect things then.

But aside from that, you’d have to have an external integration to handle this.

  • You could create a script on the drive, and integrate that with a corresponding table in your app that triggers that script (which would migrate your files).
3 Likes

@Aleksi, I couldn’t get this to work. Maybe we’re talking about two different things. I’m trying to get one app to save new files to another app’s folder.

The goal is to “Print” files from any app into the one “Print Queue” app’s folder-- without having to manually ‘add to drive’ on each file, or add a common sheet to all apps.

But I don’t think it’s possible without Apps Script, Integromat, etc. I don’t see how the “Add to Drive” feature can help with the AppSheet limitation of only being able to save files to subfolders of the app’s main folder.

1 Like

Yes it works :slight_smile:

Lets say you have an app in Root > Appsheet > Data > App#1-1234567 and you have subfolder called “Files” under that folder. Now if you select that “Files” folder and then Shift+Z, you can add that folder to Root > Appsheet > Data > App#2-1234567. Then your app is able to use that same subfolder for this 2nd app as well. Your app has access to your files even they are all in the same subfolder.

5 Likes

Interesting… :thinking:

image

I never knew about this.

1 Like

Hmm… I tried this, and AppSheet ignored the shortcut version, and created a new folder with the same name, instead.

Screen Shot 2021-01-02 at 6.35.07 AM

Also, when Google Backup & Sync adds the shortcut to the local drive, it has a *.shortcut file extension, and does not show as a real folder. So adding files to the actual source doesn’t get reflected on the local drive anyway, and wouldn’t trigger a ‘new file’ to invoke the Folder Action.

Am I missing something, @Aleksi? My app wouldn’t use the shortcut, so it doesn’t really help in this case.

1 Like

Is this only for files? I need a whole folder mirrored. Where did you find that, @MultiTech_Visions?

1 Like

I googled “shift z in google drive

You haven’t used “Add to my Drive”, You have used “Add shortcut to Drive” and that doesn’t work. It works in gDrive, but it doesn’t work in API level. When your app tried to save your file, it didn’t find that subfolder, and then it created a new one.

4 Likes

I got it! Thanks @Aleksi!

I deleted the shortcut and tried again using the keyboard command. That brings up the hidden Add to Drive which is different than the menu option Add shortcut to Drive, which I had been using.

You mentioned the shortcut, but I didn’t realize it was any different than the menu option version. It only works with the hidden, Shift+Z version!

Thanks again, @Aleksi! This will be way better than having to sync and monitor tons of different folders. :grin:

1 Like

You can find the difference if you check the folder symbol. When you use “Add shortcut to Drive”, it adds a small arrow to the left bottom. “Add to my Drive” doesn’t show that.

1 Like

WOAH! It even works across accounts!
This will be very useful for public apps that are linked to a secure app in another account. Great tip, @Aleksi!

1 Like

You’re welcome

It works as it has nothing to do with your Appsheet account(s). The only thing is, the API needs to see it.

2 Likes

I know you said “without using 3rd party tools”, but I’ll put this here anyways.

Printnode is pretty nice. You download a client software onto a computer to act as your print server. Then you can print jobs with a POST request to their API. You get 50 prints per month for free. You can send jobs with a publicly available URL to a PDF document, or with a 64bit encoding a PDF document (I have NOT tried the latter).

Here is a setup that I have using this print service. Note that this requires one to disable the security options that allow public file URLs from Appsheet.

This app runs a daily MakeDoc Report, with a set filename, and timestamp disabled:


Then an hour later it runs a daily Webhook Report


Given that printnode can accept 64-bit encoded files, perhaps there is a way to send jobs without having to disable the security options, but I have not attempted that in any way so cannot comment any further.

5 Likes

partyparrot (Appsheet) Noice!

Please read also my update at the end of this thread.

4 Likes

so far I haven’t noticed a speed difference between emailing an attachment to an Epson printer email or doing this version where I make a doc in the workflow that syncs to a local folder which fires the mac automator action.

each takes about 25-35 seconds to print. Have you been able to achieve something faster?

1 Like

You could create an app script that copies printable files from an app for a specific folder to the synced folder. And could copy that script to other apps. The only limitation is that it is only for Google Drive Files.

What I used to do was before GCP got deprecate was save file with a workflow to a specific folder in google drive. Had an app script with trigger that sent the file to GCP and after printed copied the file to an archive folder.

Before december ended I have developed a Python Script that downloads the pdf from that folder to my MAC and then the script prints the pdf file. I am still fine tuning. But the Automator part is great I idea. Was not aware it was possible.

3 Likes