41 lines
795 B
Bash
41 lines
795 B
Bash
|
|
#!/bin/bash
|
||
|
|
|
||
|
|
REAL="/usr/lib/cups/filter/rastertokpsl.real"
|
||
|
|
|
||
|
|
# Kyocera rastertokpsl uses the following arguments:
|
||
|
|
# $1 printer
|
||
|
|
# $2 job-id
|
||
|
|
# $3 title
|
||
|
|
# $4 copies
|
||
|
|
# $5 options
|
||
|
|
|
||
|
|
if [ "$#" -ne 5 ]; then
|
||
|
|
echo "ERROR: rastertokpsl wrapper: expected 5 arguments, got $#" >&2
|
||
|
|
exit 1
|
||
|
|
fi
|
||
|
|
|
||
|
|
printer="$1"
|
||
|
|
job_id="$2"
|
||
|
|
title="$3"
|
||
|
|
copies="$4"
|
||
|
|
options="$5"
|
||
|
|
|
||
|
|
# Convert the title to ASCII, remove unsupported characters,
|
||
|
|
# and keep only the last 20 alphanumeric characters.
|
||
|
|
safe_title="$(
|
||
|
|
printf '%s' "$title" |
|
||
|
|
iconv -f UTF-8 -t ASCII//TRANSLIT 2>/dev/null |
|
||
|
|
LC_ALL=C tr -cd 'A-Za-z0-9' |
|
||
|
|
tail -c 20
|
||
|
|
)"
|
||
|
|
|
||
|
|
[ -n "$safe_title" ] || safe_title="print-job"
|
||
|
|
|
||
|
|
# Pass the raster data through stdin.
|
||
|
|
exec "$REAL" \
|
||
|
|
"$printer" \
|
||
|
|
"$job_id" \
|
||
|
|
"$safe_title" \
|
||
|
|
"$copies" \
|
||
|
|
"$options"
|