| Como usar o manual on line do FlagShip ?
O Unix/Linux, como padrão, envia os relatórios sempre para um arquivo temporário que deve ser enviada para a fila de impressão.
Em ambiente Unix / Linux, quando se conecta via TelNet, a impressora local é a impressora do SERVIDOR, e a impressora remota é a impressora da estação.
No próprio servidor são cadastradas todas as impressoras das estações como remotas, identificadas por um nome.
A sintaxe do comando para o ambiente Linux:
run "lpr -P "+FS_SET("printfile")
run "lpr -Pnomedaimpressora nomedoarquivo
Exemplo:
set printer on
set device to printer // caso esteja utilizando @ say no relatório
set console off
... a impressão como é feito hoje @ say ... etc
set device to screen
set print off
set console on
RUN "lpr -P<impressora> "+FS_SET("printfile")
RUN "lpr -Pestação1 arquivo.txt")
Veja que não foi definido o nome do do arquivo onde será impresso, como default o FlagShip imprime em um arquivo com <nomedosistema>.<PID> onde o PID=ID do processo.
Veja no manual fsman o comando CMD.SET PRINT e FUN.EXECPIDNUM().
Alternativamente pode-se utilizar:
cTemp := TempFileName(,"pr")+ExecPidNum() // no fsman FUN.TEMPFILE
set print to (cTemp)
set printer on
set device to printer // caso esteja
set console off
... a impressão como é feito atualmente @ say ... etc
set device to screen
set print off
set console on
RUN "lpr -P" + cTemp // veja no fsman CMD.SET PRINT
Ao sair do sistema, remova todos os arquivos "pr*,*" + ExecPidNum()
aLixo := diretory("pr*.*" + ExecPidNum())
aeval (aLixo, { | arquivo | ferase ( arquivo [1] ) } )
Problemas com impressão remota
-
Criar a impressora "local" na estação com o nome da própria estação (irá simplificar o trabalho no futuro).
-
Criar a impressora "remota" no servidor com o nome da estação.
Exemplo: export PRINTER=estacao1
-
Criar uma impressora local como estacao1
estacao1:\
:sd=/var/spool/lpd/estacao1:\
:mx#0:\
:sh:\
:lp=/dev/lp0:\
:if=/var/spool/lpd/estacao1/filter:
Observe que o diretório estacao1 deve existir na estacao
-
No servidor, criar uma impressora remota:
estacao1:\
:sd=/var/spool/lpd/estacao1:\
:mx#0:\
:sh:\
:rm=estacao1:\
:rp=estacao1:\
:if=/var/spool/lpd/estacao1/filter:
-
Observe que o diretório estacao1 deve existir no servidor com os arquivos abaixo:
.config
filter
general.cfg
lock
postscript.cfg
status
textonly.cfg
-
Anexar os arquivos para localprinter e remoteprinter.
Veja também no manual fsman , man lpq , man lpc , man lpr.
Existe função para imprimir código de barras ?
A Inso desenvolveu uma lib o FS_BAR que imprime código de barras tipo 2&5 interleaved. Caso esta lib não os atenda, temos condições de analisá-lo e desenvolver.
Existe suporte para impressora fiscal ?
Tanto a Bematech quanto a Schalter já possuem libs e todo o suporte necessário para a implantação de impressora fiscal |