@@ -160,25 +160,6 @@ if [ "$EUID" -ne 0 ] && { [ "$COMMAND" = "install" ] || [ "$COMMAND" = "uninstal
160160 exit 1
161161fi
162162
163- # Function to check if a printer supports AirPrint
164- # Checks DNS-SD records for URF and pdl entries associated with the printer.
165- check_airprint_support () {
166- local printer=" $1 "
167- local found=0
168-
169- while IFS= read -r line; do
170- if [[ " $line " == * " $printer " * ]]; then
171- service_name=$( echo " $line " | awk ' {for (i=7; i<=NF; i++) printf "%s ", $i; print ""}' | sed ' s/[[:space:]]*$//' )
172- service_output=$( dns-sd -m -L " $service_name " _ipp._tcp local 2> /dev/null)
173- if echo " $service_output " | grep -q " URF=" && echo " $service_output " | grep -q " pdl=" ; then
174- found=1
175- break
176- fi
177- fi
178- done < <( dns-sd -m -B _ipp._tcp local 2> /dev/null)
179-
180- [ $found -eq 1 ]
181- }
182163
183164# Function to list local shared printers without AirPrint support
184165# Finds printers on the system that are shared but do not currently support AirPrint.
@@ -205,11 +186,7 @@ browse_printers() {
205186 fi
206187
207188 for printer in " ${shared_printers[@]} " ; do
208- if check_airprint_support " $printer " ; then
209- log " Skipping printer '$printer ' as it already supports AirPrint."
210- else
211- PRINTERS+=(" $printer " )
212- fi
189+ PRINTERS+=(" $printer " )
213190 done
214191
215192 if [ ${# PRINTERS[@]} -eq 0 ]; then
@@ -260,9 +237,10 @@ generate_urf() {
260237 IFS=' ' read -r -a color_modes <<< " $(echo " $line " | awk -F': ' '{print $2 }')"
261238 for color_mode in " ${color_modes[@]} " ; do
262239 case " $color_mode " in
263- * Gray* ) add_urf_code " W8" ;;
264- * RGB* ) add_urf_code " SRGB24" ;;
265- * CMYK* ) add_urf_code " ADOBERGB24" ;;
240+ * Gray* |* Black* ) add_urf_code " W8" ;;
241+ * RGB* |* Color* ) add_urf_code " SRGB24" ;;
242+ * AdobeRGB* ) add_urf_code " ADOBERGB24" ;;
243+ * CMYK* ) add_urf_code " CMYK32" ;;
266244 esac
267245 done
268246 ;;
@@ -275,17 +253,34 @@ generate_urf() {
275253 * Draft* ) add_urf_code " PQ1" ;;
276254 * Normal* ) add_urf_code " PQ2" ;;
277255 * High* ) add_urf_code " PQ3" ;;
256+ * Photo* |* Best* ) add_urf_code " PQ4" ;;
278257 esac
279258 done
280259 ;;
281-
260+
261+ # Orientation Options
262+ * " Orientation" * |* " orientation" * )
263+ IFS=' ' read -r -a orientations <<< " $(echo " $line " | awk -F': ' '{print $2 }')"
264+ for orient in " ${orientations[@]} " ; do
265+ case " $orient " in
266+ * Portrait* |* None* ) add_urf_code " OR0" ;;
267+ * Landscape* ) add_urf_code " OR1" ;;
268+ * ReverseLandscape* ) add_urf_code " OR2" ;;
269+ * ReversePortrait* ) add_urf_code " OR3" ;;
270+ esac
271+ done
272+ ;;
273+
274+
282275 # Duplex Mode Options
283276 * " Duplex" * )
284277 IFS=' ' read -r -a duplex_modes <<< " $(echo " $line " | awk -F': ' '{print $2 }')"
285278 for duplex_mode in " ${duplex_modes[@]} " ; do
286279 case " $duplex_mode " in
287- * DuplexNoTumble* ) add_urf_code " DM1" ;;
280+ * None* |* Off* |* Simplex* ) add_urf_code " DM1" ;;
281+ * DuplexNoTumble* ) add_urf_code " DM2" ;;
288282 * DuplexTumble* ) add_urf_code " DM3" ;;
283+ * DuplexManual* ) add_urf_code " DM4" ;;
289284 esac
290285 done
291286 ;;
@@ -296,8 +291,16 @@ generate_urf() {
296291 for media_size in " ${media_sizes[@]} " ; do
297292 case " $media_size " in
298293 * Letter* ) add_urf_code " MS_LETTER" ;;
299- * A4* ) add_urf_code " MS_A4" ;;
300294 * Legal* ) add_urf_code " MS_LEGAL" ;;
295+ * A4* ) add_urf_code " MS_A4" ;;
296+ * A3* ) add_urf_code " MS_A3" ;;
297+ * A5* ) add_urf_code " MS_A5" ;;
298+ * A6* ) add_urf_code " MS_A6" ;;
299+ * B5* ) add_urf_code " MS_B5" ;;
300+ * Executive* ) add_urf_code " MS_EXECUTIVE" ;;
301+ * Tabloid* ) add_urf_code " MS_TABLOID" ;;
302+ * 4x6* |* 4X6* ) add_urf_code " MS_4X6" ;;
303+ * 5x7* |* 5X7* ) add_urf_code " MS_5X7" ;;
301304 esac
302305 done
303306 ;;
@@ -316,6 +319,8 @@ generate_urf() {
316319 * photographic* ) add_urf_code " MT6" ;;
317320 * glossy* ) add_urf_code " MT7" ;;
318321 * matte* ) add_urf_code " MT8" ;;
322+ * cardstock* ) add_urf_code " MT9" ;;
323+ * letterhead* ) add_urf_code " MT10" ;;
319324 esac
320325 done
321326 ;;
@@ -329,6 +334,12 @@ generate_urf() {
329334 * tray-1* ) add_urf_code " IS2" ;;
330335 * tray-2* ) add_urf_code " IS3" ;;
331336 * Manual* ) add_urf_code " IS4" ;;
337+ * tray-3* ) add_urf_code " IS5" ;;
338+ * tray-4* ) add_urf_code " IS6" ;;
339+ * tray-5* ) add_urf_code " IS7" ;;
340+ * envelope* ) add_urf_code " IS8" ;;
341+ * multi* |* multipurpose* ) add_urf_code " IS9" ;;
342+ * photo* ) add_urf_code " IS10" ;;
332343 esac
333344 done
334345 ;;
0 commit comments