Olá pessoal, temos aqui uma demanda de impressão de requisições ao almoxarifado de forma automática quando uma nota fiscal for emitida via faturamento ou seja realizada a entrada via documento de entrada. Neste sentido temos lá uma impressora não fiscal. No caso, a impressora é homologada da marca Bematech.
Configuramos a impressora em um servidor de impressão na rede e realizamos o compartilhamento. Gostaria do apoio de vocês sobre como executar essa impressão sem chamar a interface. Atualmente estou fazendo testes com a classe FwMsPrinter com os seguintes parâmetros.
nQtdCopy := 1
lViewPdf := .f.
lRaw := .f.
lServer := .f.
lAdjustToLegacy := .t.
lDisableSetup := .t.
cNomRel := 'Requisicao_'+StrTran(Time(), ":", "")
cPrinter := '\10.11.119.18\iR1643i'
FWMsPrinter():New(cNomRel, IMP_SPOOL, lAdjustToLegacy, Nil, lDisableSetup, NIL, NIL, cPrinter, lServer, NIL, lRaw, lViewPdf, nQtdCopy )
Ao executar a chamada com o Disable Setup = .T. ele apresenta a mensagem "Impressão via client exige impressora instalada na estação". Sendo assim, gostaria de entender se, realmente a impressora tem que estar instalada na máquina do usuário ou se pode ser usada desta forma via rede, visto que haverá apenas uma impressora no almoxarifado para as requisições irem de forma automática. Também sou aberto a exemplos ou uso de outra classe para tal uso.
Obrigado.
Bom dia Charles,
Fizemos da seguinte forma aqui, deixamos a impressora como padrão na maquina local e utilizamos a classe TMSPrinter.
E para validação da impressão sem apresentar a tela utilizamos o trecho de código abaixo:
oPrn:EndPage() If !oPrn:IsPrinterActive() oPrn:Preview() Else fwWriteProfString( GetPrinterSession(), "LOCAL","CLIENT", .T. ) fwWriteProfString( GetPrinterSession(), "PRINTTYPE","SPOOL", .T. ) oPrn:Print() Endif
— Edson Maurcio Gonçalves 24 de Nov de 2022