O PDF tem sido o formato de impressão padrão por um tempo. Prepare um arquivo PDF de uma vez por todas. Você pode usar o comando convert
do ImageMagick suite (ou o original ou o GraphicsMagick variante).
convert foo.jpg /path/to/foo.pdf
Você pode encontrar registros de impressão em /var/log/cups/page_log
. Apenas a conta de administrador pode lê-los. Registros antigos estão em arquivos chamados /var/log/cups/page_log.0
, /var/log/cups/page_log.1.gz
, etc. Uma entrada de registro é assim:
printername 1234 julumme [date] 42 1 - localhost filename.pdf
Nós nos preocupamos apenas com o nome da impressora e a data aqui. Entradas de log serão em ordem cronológica, por isso precisamos pegar o último correspondente à impressora desejada. Aqui está um fragmento de shell que faz isso e compara a data com a data atual e imprime um arquivo, a menos que algo tenha sido impresso nos últimos 7 dias. Substitua photosmart
pelo nome que você deu à sua impressora. Aviso: código não testado.
#!/bin/sh
printer_name="photosmart"
last_date=$(
{ zcat /var/log/page_log.1.gz;
cat /var/log/page_log.0 /var/log/page_log; } 2>/dev/null |
awk '
$1 == "photosmart" {sub(/\].*/, ""); sub(/.*\[/, ""); last_date = $0}
END {print last_date}
')
if [ -n "$last_date" ]; then
seconds_since_last_printing=$(($(date -d "$last_date" +%s) - $(date +%s)))
if [ $seconds_since_last_printing -lt $((7*24*60*60)) ]; then
# There was a recent print job
exit
fi
fi
lp -d "$printer_name" /path/to/foo.pdf
Execute este script em uma tarefa cron diária (ou menos frequente). Ele precisará ser executado como root porque os arquivos de log não podem ser lidos por usuários comuns (a menos que você altere a configuração do CUPS).
Se você usar aliases de impressora diferentes para imprimir trabalhos monocromáticos e coloridos, verá os diferentes aliases no log. No entanto, você pode usar o alias de cores para imprimir um trabalho do BW ou vice-versa, se você passar a opção explicitamente, portanto, esse não é um teste confiável.