Skip to main content

Having a hard time trying to get Fiery printers deployed through Jamf. I either have 'paused' print jobs, or I can't see the printer to add through Jamf Admin.

Install the printer driver through the PKG, it prints fine, but I cannot add the printer in Jamf Admin - There are not any printers mapped on this computer.

Install the printer driver manually, define the printer, use the same driver that was shown with the install process....and when I go to print.....it immediately goes to Paused. Can never get the print job to start.

Anyone have any suggestions?

Personally, I didn't use Jamf Admin for printers. I always added printers using a script. And when it came to Fiery printers, I found that scripting it was way more successful. I would use the Fiery Uninstaller to clean up any existing driver installs before installing the driver and then adding the printer using lpadmin. Here's an example script:

#!/bin/bash # Date: 2021 Sep 22 # Author: Steve Wood (@stevewood_tx on Macadmins Slack) # Update: # # Purpose: add printers using a Case statement to choose # # Parameters: # Parameter 4 ($4) = Printer name for case statement # setup logging logFile="/var/log/add-printers-$(date +%Y%m%d-%H%M).log" # Check for / create logFile if [ ! -f "${logFile}" ]; then # logFile not found; Create logFile /usr/bin/touch "${logFile}" fi set -xv; exec 1> $logFile 2>&1 function ScriptLog() { # Re-direct logging to the log file ... exec 3>&1 4>&2 # Save standard output and standard error exec 1>>"${logFile}" # Redirect standard output to logFile exec 2>>"${logFile}" # Redirect standard error to logFile NOW=$( date '+%Y-%m-%d %H:%M:%S' ) /bin/echo "${NOW}" " ${1}" >> "${logFile}" } ScriptLog function remove_printers { # looping function to remove all printers passed printers=("$@") echo "*** List: $printers" for i in "${printers[@]}" do echo "*** Removing: $i" lpadmin -x ${i} > $2>/dev/null done } lpa='/usr/sbin/lpadmin' ## add printers ScriptLog "$4" "${NOW}" case "$4" in XENA) printer_array=( "Xena_Colour" ) remove_printers "${printer_array[@]}" ## remove any installed Fiery driver and re-install. Or, install if it is missing. if [[ ! -f "/Library/Printers/PPDs/Contents/Resources/en.lproj/Canon iPR Svr M10 PS V2.0" ]]; then /usr/local/bin/jamf policy -event CN_iPRM10_v2_0RX_FD65_v1 -forceNoRecon else /usr/local/bin/jamf policy -event fieryuninstaller fsu='/tmp/Fiery Software Uninstaller.app/Contents/MacOS/Fiery Software Uninstaller' fiery_driver=$( "$fsu" -s $USER -getInstalledDrivers | grep "Canon iPR Svr M10 PS V2.0" ) if [[ $fiery_driver ]]; then "$fsu" -s $USER -d "$fiery_driver" fi /usr/local/bin/jamf policy -event CN_iPRM10_v2_0RX_FD65_v1 -forceNoRecon fi ${lpa} -p "Fiery Name" -E \\ -o printer-is-shared=false \\ -L "My Office" \\ -D "Fiery_Name" \\ -v "lpd://192.168.1.1" \\ -P "/Library/Printers/PPDs/Contents/Resources/en.lproj/Canon iPR Svr M10 PS V2.0" \\ -o "printer-is-shared=false" \\ -o "EFDuplex=False" ;; esac exit 0

 

I would attach that to a policy, provide the name of the printer as Parameter 4, and then use that for the "Case" statement (line 53). So if you pass 'XENA', as I do in the script, then that is the case that it runs. Hopefully that makes sense.