Jump to content

MacOS Printers - Changing Colour to Mono via healing


Karl Dawkins

Recommended Posts

  • Moderators

Although possible, this is in no way Black and White (I thank you.  I am available for Weddings and Christenings).

There is more than one way to achieve this and none of them are simplistic and will be unique (definitely by Vendor and likely also by printer model).  I have had to do this though in the past, when working for a Publishing Company and also do this on home devices (but the methods between these differed).

For a method outline (you'd need some PS time if you wanted something actually more precise and built out):

I have a Fileset Group:

image.png.90c959b2c633ddf61102e6cc5f354d2e.png

We have the PKG a Fileset of some files and then Profiles.

Fileset of files contains:

image.png.4084211c0cc7bfb40c6fe6844eb4101f.png

The plist was pre-configured on a single device and once the Printer was configured as desired the file copied out.

The top of the file looks like:

% /usr/libexec/PlistBuddy -c "Print" '/Users/sholden/Desktop/com.apple.print.custompresets.forprinter.HP_ENVY_5640_series___mini.plist'
Dict {
    com.apple.print.lastPresetPrefType = 4
    com.apple.print.lastPresetPref = Draft Plain Double Sided
    com.apple.print.customPresetNames = Array {
        Draft Plain Double Sided
    }
    Draft Plain Double Sided = Dict {
        com.apple.print.preset.id = Draft Plain Double Sided

As such we have a definition of a saved setup called 'Draft Plain Double Sided'.  To highlight a couple of entries within this file:

            HPPenConfig = black-and-color
            HPGrayscaleMode = black-only

Similarly with the printers.conf:

image.png.cd2f2809328df779306b810852662e92.png

The start_cups script:

#!/bin/zsh

launchctl start /System/Library/LaunchDaemons/org.cups.cupsd.plist
lpadmin -p "HP_ENVY_5640_series___mini" -L "Ground Floor Reception" -E -v  "dnssd://HP%20ENVY%205640%20series%20%40%20mini._ipps._tcp.local./?uuid=00b5475a-db72-3fa7-4812-dd55944a873b" -P /Library/Printers/PPDs/Contents/Resources/"HP ENVY 5640 series.ppd.gz" 2>/dev/null

The stop just has just the launchctl line, but with stop instead of start

So we have the files built out and a way to stop and start cups, we then have a Profile:

image.png.93e3d0a21563d2359b9747339fde9fdf.png

We can see that the last preset pref is referencing the name of the definition from within the supplied plist.

This is one method.  Other methods could be achieved using a CUPS server and pre-defining items server side, but that might still end up requiring editing of local files.

Hope this helps!

Link to comment
Share on other sites

  • 2 weeks later...

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...