O arquivo a ser alterado é /etc/cups/ppd/{your_printer_id}.ppd
. Você precisa encontrar ou adicionar essas 3 linhas na seção ( sharp
é um nome que eu inventei para este exemplo):
*cupsFilter: "application/vnd.cups-raw 0 sharp1"
*cupsFilter: "application/vnd.cups-command 0 commandtops"
*cupsFilter: "application/vnd.cups-postscript 0 sharp1"
Em seguida, crie um arquivo (o nome do arquivo precisa corresponder ao nome no arquivo anterior) ...
/etc/cups/ppd/{your_printer_id}.conf
e coloque estas linhas:
ACCOUNTNUMBER="{account_number}"
, substituindo {account_number} pelo seu número de conta real. De acordo com a documentação da Sharp, esse número tem 5 dígitos, com os zeros, se necessário. Em seguida, você precisa de um filtro com o mesmo nome que você usou acima:
/usr/lib/cups/filter/sharp1
e coloque isso aqui:
#!/bin/bash
source /etc/cups/ppd/${PRINTER}.conf
echo -en "3%-12345X"
echo -en "@PJL SET ACCOUNTNUMBER = \"${ACCOUNTNUMBER}\"52"'
cat -
echo -en "*NickName: "Generic PDF file generator"
*1284DeviceID: "MFG:Generic;MDL:PDF file generator;DES:Generic PDF file generator;CLS:PRINTE
R;CMD:POSTSCRIPT;"
*% cupsFilter: "application/vnd.cups-postscript 0 pstitleiconv"
*PSVersion: "(2017.000) 0"
*LanguageLevel: "2"
*ColorDevice: True
*DefaultColorSpace: RGB
*FileSystem: False
43%-12345X52@PJL EOJ52"
echo -en "3%-12345X"
Este arquivo precisa ser executável ( sudo chmod +x /usr/lib/cups/filter/sharp1
) Agora, para a parte complicada: o código acima pode precisar ser ajustado para a sua impressora.
Eu usei esta fonte para instruir um cliente a fazer isso funcionar.
O cupsFilter eu vejo aqui em um aleatório /etc/cups/ppd/*.ppd
:
*cupsFilter: "application/vnd.cups-raw 0 sharp1"
*cupsFilter: "application/vnd.cups-command 0 commandtops"
*cupsFilter: "application/vnd.cups-postscript 0 sharp1"