Problema com serviço de impressão
Moderador: Moderadores
-
marco.prodata
- Usuário Nível 3

- Mensagens: 238
- Registrado em: 30 Nov 2018 10:07
- Localização: Caratinga
Problema com serviço de impressão
Caros,
Tenho uma aplicação que roda em um servidor Linux e é acessada via Putty. Então desenvolvi um pequeno serviço de impressão para rodar no Windows e receber dados para impressão. E estou com 2 problemas com o serviço, o primeiro é que não consigo iniciar o serviço pela linha de comando, só consigo fazer direto do painel de serviços.
A segunda é que o servidor recebe os dados para impressão, processa tudo como se fosse imprimir, gera os dados na fila de impressão, mas não sai nada na impressora (estou testando com impressora PDF).
Se alguém tiver alguma sugestão para resolver o problema agradeço.
Anexei os arquivos para não ficar muito longa a mensagem.
Tenho uma aplicação que roda em um servidor Linux e é acessada via Putty. Então desenvolvi um pequeno serviço de impressão para rodar no Windows e receber dados para impressão. E estou com 2 problemas com o serviço, o primeiro é que não consigo iniciar o serviço pela linha de comando, só consigo fazer direto do painel de serviços.
A segunda é que o servidor recebe os dados para impressão, processa tudo como se fosse imprimir, gera os dados na fila de impressão, mas não sai nada na impressora (estou testando com impressora PDF).
Se alguém tiver alguma sugestão para resolver o problema agradeço.
Anexei os arquivos para não ficar muito longa a mensagem.
- Anexos
-
tclient.prg- Aplicativo cliente de teste
- (1.92 KiB) Baixado 212 vezes
-
printServer.prg- Teste de serviço
- (4.67 KiB) Baixado 299 vezes
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Problema com serviço de impressão
Olá!
No seu código vc previu essa situação ?
Saudações,
Itamar M. Lins Jr.
PDF abre uma tela pra perguntar o nome e onde vai salvar.estou testando com impressora PDF
No seu código vc previu essa situação ?
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
-
marco.prodata
- Usuário Nível 3

- Mensagens: 238
- Registrado em: 30 Nov 2018 10:07
- Localização: Caratinga
Problema com serviço de impressão
Aqui ele já abre o PDF no navegador, qualquer outra impressão que faço para essa impressora, ele já gera o PDF e abre no navegador que é o leitor padrão de PDF no meu computador.Itamar M. Lins Jr. escreveu:Olá!PDF abre uma tela pra perguntar o nome e onde vai salvar.estou testando com impressora PDF
No seu código vc previu essa situação ?
Saudações,
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Problema com serviço de impressão
Olá!
Saudações,
Itamar M. Lins Jr.
Gera com qual nome ?já gera o PDF
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
-
marco.prodata
- Usuário Nível 3

- Mensagens: 238
- Registrado em: 30 Nov 2018 10:07
- Localização: Caratinga
Problema com serviço de impressão
Gera um arquivo temporário como "file:///C:/Users/marco/AppData/Local/Temp/PDFCreator/Temp/Job_tempsave_3awrjko1/P%C3%A1gina%20de%20teste.pdf"
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Problema com serviço de impressão
Olá!
Interessante, não sabia que ele criava o arquivo sem informar nome e lugar.
Saudações,
Itamar M. Lins Jr.
Interessante, não sabia que ele criava o arquivo sem informar nome e lugar.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Problema com serviço de impressão
Pode colocar no agendador de tarefas, ou se permitir pelo SC.EXEmarco.prodata escreveu: o primeiro é que não consigo iniciar o serviço pela linha de comando, só consigo fazer direto do painel de serviços.
Talvez shellexecute com opção PRINT ?marco.prodata escreveu:A segunda é que o servidor recebe os dados para impressão, processa tudo como se fosse imprimir, gera os dados na fila de impressão, mas não sai nada na impressora (estou testando com impressora PDF)
Lembrando que depende da impressora padrão do servidor.
Não olhei os fontes.
Lembrando também: o servidor vai começar a rodar assim que ver o arquivo. Não pode fazer parcial, talvez até primeiro copiar com outro nome e depois renomear, assim quando o servidor enxergar vai estar completo.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Problema com serviço de impressão
A geração de PDF já passou por várias mudanças.Itamar M. Lins Jr. escreveu:Interessante, não sabia que ele criava o arquivo sem informar nome e lugar.
Lembro que no inícioi aparecia antes de terminar, isso era problema porque ao enviar por email, poderia estar incompleto.
Lembro também que antes não pedia nome, mas agora pede sobre onde quer salvar o PDF.
Mas pelo que ele mostrou, é PDFCreator, esse dá pra configurar pasta, nome, etc.
Usei muito no meu servidor, quando usava UNIDANFE pra gerar PDF de fornecedor.
Tinha licença de UNIDANFE, mas era presa ao CNPJ do emitente, não dava pra usar pra notas de terceiros.
PDFCreator foi a solução pra época.
Depois fizeram contribuição de fonte pra criar PDF pra sefazclass, a partir daí não precisei mais de pdfcreator nem unidanfe.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Problema com serviço de impressão
Olá!
Bom eu trabalho com HTML e os navegadores fazem o serviço.
Como o HTML já tem nome e está em algum lugar, eles salvam em PDF se for o caso ou simplesmente só imprime mesmo e pronto, nem precisar de PDF.
Saudações,
Itamar M. Lins Jr.
Bom eu trabalho com HTML e os navegadores fazem o serviço.
Como o HTML já tem nome e está em algum lugar, eles salvam em PDF se for o caso ou simplesmente só imprime mesmo e pronto, nem precisar de PDF.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Problema com serviço de impressão
Tem outra questão nisso de serviço:
o serviço roda independente, não fica preso a nenhum usuário, exceto se for definido.
Por acaso disco e impressora ficam visíveis pra esse serviço ?
Lembrando que o agendador de tarefas também tem isso, de definir usuário.
Pode configurar lá pra iniciar a tarefa ao ligar o computador, ou todo dia num horário, etc.
o serviço roda independente, não fica preso a nenhum usuário, exceto se for definido.
Por acaso disco e impressora ficam visíveis pra esse serviço ?
Lembrando que o agendador de tarefas também tem isso, de definir usuário.
Pode configurar lá pra iniciar a tarefa ao ligar o computador, ou todo dia num horário, etc.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
-
marco.prodata
- Usuário Nível 3

- Mensagens: 238
- Registrado em: 30 Nov 2018 10:07
- Localização: Caratinga
Problema com serviço de impressão
Então, no meu caso eu acesso o aplicativo via putty, e o serviço abre uma porta pra receber os dados via putty, e processa-los localmente, e no caso, após receber os dados eu faço o processo de impressão normal usando winprint para imprimir na impressora que for selecionada, serve para imprimir em qualquer impressora, só estou testando local com o PDFCreator, mas é para imprimir em qualquer impressora.Itamar M. Lins Jr. escreveu:Olá!
Bom eu trabalho com HTML e os navegadores fazem o serviço.
Como o HTML já tem nome e está em algum lugar, eles salvam em PDF se for o caso ou simplesmente só imprime mesmo e pronto, nem precisa de PDF.
Saudações,
Itamar M. Lins Jr.
-
marco.prodata
- Usuário Nível 3

- Mensagens: 238
- Registrado em: 30 Nov 2018 10:07
- Localização: Caratinga
Problema com serviço de impressão
O serviço que criei ele tem duas funções básicas, uma que captura as impressoras que tem instalado local e devolve para o aplicativo que invocar essas informações, e outro que recebe um array de dados, e processa a impressão utilizando a winprint, o serviço tem acesso sim ao disco e impressora, tanto que retorna corretamente a lista de impressoras, e grava corretamente um log mostrando os dados que estão chegando, e como disse, deixando a fila da impressora aberta, ele pisca como se tivesse recebendo as informações, mas não termina o processo de impressão.JoséQuintas escreveu:Tem outra questão nisso de serviço:
o serviço roda independente, não fica preso a nenhum usuário, exceto se for definido.
Por acaso disco e impressora ficam visíveis pra esse serviço ?
Lembrando que o agendador de tarefas também tem isso, de definir usuário.
Pode configurar lá pra iniciar a tarefa ao ligar o computador, ou todo dia num horário, etc.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Problema com serviço de impressão
Olá!
Essa impressora está compartilhada ?
Pode ser o tal erro 0x0000011b e outros que existem no windows.
Tem atualização do windows que coloca atributos não sei onde que vira e mexe tenho que roda o fix desse erro.
Saudações,
Itamar M. Lins Jr.
Essa impressora está compartilhada ?
Pode ser o tal erro 0x0000011b e outros que existem no windows.
Tem atualização do windows que coloca atributos não sei onde que vira e mexe tenho que roda o fix desse erro.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
-
marco.prodata
- Usuário Nível 3

- Mensagens: 238
- Registrado em: 30 Nov 2018 10:07
- Localização: Caratinga
Problema com serviço de impressão
Então, quando ele instala o serviço, ele já marca para iniciar automaticamente, então não precisa de mexer no gerenciador de tarefas, se reiniciar o computador ele levanta o serviço, o que eu gostaria era de assim que instalar o serviço, ele já startar pelo código, ou mesmo se eu desse o comando manual ele startasse, mas fica acusando erro: "Erro executando o modo (service): 1063 O processo do serviço nÒo pôde se conectar ao controlador do serviço."JoséQuintas escreveu: Pode colocar no agendador de tarefas, ou se permitir pelo SC.EXE
então, o serviço ele recebe um array de dados, que seriam as linhas a serem impressas, e como já tenho o array pronto, não preciso gerar um arquivo do lado de cá na máquina onde o serviço está instalado para imprimir, só percorre-lo e ir mandando para impressora.JoséQuintas escreveu:Talvez shellexecute com opção PRINT ?
Lembrando que depende da impressora padrão do servidor.
Não olhei os fontes.
O meu ambiente é o seguinte, as estações conectam no servidor que fica na nuvem via putty, o serviço fica em cada estação com uma porta aberta para comunicação com o putty e tem duas funções, devolver para o aplicativo que tá rodando no putty, quais impressoras tem instalação na estação local, e receber um array de dados para imprimir, basicamente isso.
O serviço está devolvendo a lista de impressoras corretamente, e está recebendo o array de dados e percorrendo o mesmo corretamente, dá pra ver pelos logs, só a impressão mesmo que não está ocorrendo, apesar de chegar a piscar na fila.
-
marco.prodata
- Usuário Nível 3

- Mensagens: 238
- Registrado em: 30 Nov 2018 10:07
- Localização: Caratinga
Problema com serviço de impressão
Ela não precisa estar compartilhada, pq no fim das contas quem vai fazer a impressão é a máquina local.Itamar M. Lins Jr. escreveu:Olá!
Essa impressora está compartilhada ?
Saudações,
Itamar M. Lins Jr.