Google workspace – printing the collaborative inbox / printing google groups

One of our new work processes is for my by brother to check invoices from a group of suppliers and if they’re OK to pay forward them to a private collaborative inbox/google group in our Google Workspace.

It has been working really well so far but there’s been one issue. Some of those suppliers send their invoices as plain text and Google collaborative inbox has no print button. I need to print them as part of our accounting records.

I found lots of people asking for a print button or trying to find a way around the limitation but no one had a solution. (this example) So I put my lateral thinking hat on and came up with a simple work around.

Select with your mouse the text/images you want to print, right click, print.

and it worked. One of my better ideas, so I’m sharing it here in the hope it helps others. As a bonus, I even did a screen recording to show the steps. The obvious gotcha is that if you select an image as part of the text and right click on the image instead of the text, then you won’t get the ‘print’ option. I hope it helps, say hello if it does 🙂

Automatic Letterheads from a printer

Some time ago I made our printer print letterheads on demand, and wrote the instructions here:

We’ve just replaced our printer with a new model, a Kyocera P7240cdn and that means I need to update cups with a new print queue that generates letterheads on demand for anything sent to that queue.

Typically, it didn’t work first time. Checking the logs, and error file was created that said

Error: /undefined in !R!RGBL0,0;RGBL1,0;RGBL2,0;HUE0,0;HUE1,0;HUE2,0;HUE3,0;HUE4,0;HUE5,0;HUE6,0;LGHT0,0;LGHT1,0;SATU0;EXIT;
Operand stack:

Execution stack:
   %interp_exit   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--   --nostringval--   --nostringval--   false   1   %stopped_push   1990   1   3   %oparray_pop   1989   1   3   %oparray_pop   1977   1   3   %oparray_pop   1833   1   3   %oparray_pop   --nostringval--   %errorexec_pop   .runexec2   --nostringval--   --nostringval--   --nostringval--   2   %stopped_push   --nostringval--
Dictionary stack:
   --dict:731/1123(ro)(G)--   --dict:0/20(G)--   --dict:75/200(L)--
Current allocation mode is local
Current file position is 261
GPL Ghostscript 9.50: Unrecoverable error, exit code 1

From that I worked out that the new PPD file contained settings not seen in the old printer (P6035) starting with the section

*JCLOpenUI *JCLRedLevel/RGB Level (Red): PickOne
*DefaultJCLRedLevel: None
*OrderDependency: 8 JCLSetup *JCLRedLevel
*JCLRedLevel None/Normal: "!R!RGBL0,0;"
*JCLRedLevel Minus10/-10: "!R!RGBL0,-10;"
*JCLRedLevel Minus9/-9: "!R!RGBL0,-9;"
*JCLRedLevel Minus8/-8: "!R!RGBL0,-8;"

So I first removed the “!R!” thinking that caused the error, then the whole JCLRedLevel section, then finally removed about 300 lines of the PPD file from the JCLRedLevel section to the SATU0 section.

With those lines gone, the script succesfully merged the PDF letterhead overlay onto the print file and everything worked.

Update next day!
Not so fast steve, It started printing slightly smaller first pages, like 30% smaller scale. I traced it back to the original PostScript print file first page being smaller than A4 but all subsequent ones being A4. Eventually, I worked out that the fix was to add the printer to cups in a particular way.

Add Printer > IPP > Name of Printer (mars-P… as before), DO NOT add description or location text.
Make = Generic
Model = CupsPDF printer (no options)
Add Printer
Set defaults (Page Size: a4, 600DPI)