Imprimir .pdf diretamente para a impressora
Como eu faço para imprimir um arquivo .pdf diretamente para a impressora sem abrir uma instancia do adobe?
Agradeço a ajuda de todos,
Agradeço a ajuda de todos,
Silvio Morelo
Curtidas 0
Respostas
Marisiana Battistella
30/04/2015
Não sei entendi exatamente o que você pediu, Morelo...
Mas você pode enviar o documento para impressão e alterar a impressora por "Salvar em PDF" ou outra opção que possa existir no teu PC.
Caso não exista essa opção você tem que instalar um programa que faça isso, como, por exemplo, o PDF Creator, o Cute PDF,...
Mas você pode enviar o documento para impressão e alterar a impressora por "Salvar em PDF" ou outra opção que possa existir no teu PC.
Caso não exista essa opção você tem que instalar um programa que faça isso, como, por exemplo, o PDF Creator, o Cute PDF,...
GOSTEI 0
Thiago Santana
30/04/2015
Não sei entendi exatamente o que você pediu, Morelo...
Mas você pode enviar o documento para impressão e alterar a impressora por "Salvar em PDF" ou outra opção que possa existir no teu PC.
Caso não exista essa opção você tem que instalar um programa que faça isso, como, por exemplo, o PDF Creator, o Cute PDF,...
Mas você pode enviar o documento para impressão e alterar a impressora por "Salvar em PDF" ou outra opção que possa existir no teu PC.
Caso não exista essa opção você tem que instalar um programa que faça isso, como, por exemplo, o PDF Creator, o Cute PDF,...
Isso mesmo, basta configurar a impressora!
Ai pode utilizar essas diversas opções existentes.
GOSTEI 0
Marisiana Battistella
30/04/2015
Morelo, quando puder, nos informe se conseguiu resolver...
GOSTEI 0
Silvio Morelo
30/04/2015
Obrigado pela ajuda,
Eu tenho um .pdf já criado "contrato de serviço" e quando meu cliente contrata um serviço preciso imprimi-lo para ser assinado. Quero fazer isso pelo próprio sistema, efetuou a compra imprimir o contrato porem ao abrir o pdf ele também abre uma instancia do adobe.
Tem como enviar este .pdf diretamente para a impressora sem abrir esta instancia, ou alguém tem uma outra dica de como fazer essa impressão?
Utilizo Delphi 7 e Firebird 2.0
Eu tenho um .pdf já criado "contrato de serviço" e quando meu cliente contrata um serviço preciso imprimi-lo para ser assinado. Quero fazer isso pelo próprio sistema, efetuou a compra imprimir o contrato porem ao abrir o pdf ele também abre uma instancia do adobe.
Tem como enviar este .pdf diretamente para a impressora sem abrir esta instancia, ou alguém tem uma outra dica de como fazer essa impressão?
Utilizo Delphi 7 e Firebird 2.0
GOSTEI 0
Marisiana Battistella
30/04/2015
No caso, eu acho que você tem um relatório onde está configurada a apresentação dos dados e esse relatório está sendo gerado em .pdf?
Se for isso, você teria que alterar o código para que ao invés de gerar o relatório em .pdf apenas envie o relatório para a impressora.
Assim, iria abrir a tela de edição da impressão, onde o usuário pode escolher em que impressora ele vai imprimir ou, então, pode optar por salvar em .pdf sem realizar a impressão.
Se for isso, você teria que alterar o código para que ao invés de gerar o relatório em .pdf apenas envie o relatório para a impressora.
Assim, iria abrir a tela de edição da impressão, onde o usuário pode escolher em que impressora ele vai imprimir ou, então, pode optar por salvar em .pdf sem realizar a impressão.
GOSTEI 0
Silvio Morelo
30/04/2015
Marisiana obrigado pela ajuda,
O relatório (.pdf) é criado por um outra área a onde eles alteraram sempre que necessário, eu apenas pego o arquivo e mando imprimir.
O relatório (.pdf) é criado por um outra área a onde eles alteraram sempre que necessário, eu apenas pego o arquivo e mando imprimir.
GOSTEI 0
Ageu Luna
30/04/2015
Bom dia Morelo
Você pode fazer da seguinte forma:
1- Declare "ShellApi" no uses da interface.
2- no evento OnClick de algum botão chame a função "ShellExecute(Handle, 'print', PChar('C:\Temp\ArquivoPDF.PDF'), nil, nil, SW_HIDE);"
Obs: não esqueça de substituir o arquivo que usei como exemplo 'C:\Temp\ArquivoPDF.PDF' pelo arquivo que deseja.
Você pode fazer da seguinte forma:
1- Declare "ShellApi" no uses da interface.
2- no evento OnClick de algum botão chame a função "ShellExecute(Handle, 'print', PChar('C:\Temp\ArquivoPDF.PDF'), nil, nil, SW_HIDE);"
Obs: não esqueça de substituir o arquivo que usei como exemplo 'C:\Temp\ArquivoPDF.PDF' pelo arquivo que deseja.
GOSTEI 0
Marisiana Battistella
30/04/2015
Obrigada por interagir Ageu!
Morelo, desculpa por não te responder antes, eu nem iria saber te ajudar mais pois sei muito pouco de Delphi.
Avise-nos se a solução apresentada pelo Ageu resolve o teu problema.
Morelo, desculpa por não te responder antes, eu nem iria saber te ajudar mais pois sei muito pouco de Delphi.
Avise-nos se a solução apresentada pelo Ageu resolve o teu problema.
GOSTEI 0
Silvio Morelo
30/04/2015
Ageu,
Obrigado pela ajuda! Eu executei o comando conforme você informou, o arquivo .pdf é impresso corretamente porem o Adobe Reader insiste em abrir, tem como imprimir o arquivo sem precisar abrir o Adobe?
Obrigado pela ajuda! Eu executei o comando conforme você informou, o arquivo .pdf é impresso corretamente porem o Adobe Reader insiste em abrir, tem como imprimir o arquivo sem precisar abrir o Adobe?
GOSTEI 0
Ageu Luna
30/04/2015
Morelo, bom dia.
Realmente nos testes que realizei o adobe ainda é aberto como mencionado por você.
O que pode ser feito nesse caso é fechar o adobe pela sua aplicação. Veja o código no qual realizei alguns testes e funcionou.
ShellExecute(Handle, 'print', PChar(Edit1.Text), nil, nil, SW_HIDE);
Sleep(1000);
PostMessage(FindWindow(nil, 'Adobe Reader'), WM_CLOSE, 0, 0);
O "Edit1.Text" foi usado para o endereço do arquivo pdf.
O comando Sleep(3000), utilizei para aguardar 3 segundo até que adobe seja aberto, para posteriormente ser fechado pelo comando seguinte:
PostMessage(FindWindow(nil, 'Adobe Reader'), WM_CLOSE, 0, 0);
Obs:
Talvez seja necessário ajustar o tempo do comando "Sleep" (em milissegundos) para funcionar adequadamente.
Realmente nos testes que realizei o adobe ainda é aberto como mencionado por você.
O que pode ser feito nesse caso é fechar o adobe pela sua aplicação. Veja o código no qual realizei alguns testes e funcionou.
ShellExecute(Handle, 'print', PChar(Edit1.Text), nil, nil, SW_HIDE);
Sleep(1000);
PostMessage(FindWindow(nil, 'Adobe Reader'), WM_CLOSE, 0, 0);
O "Edit1.Text" foi usado para o endereço do arquivo pdf.
O comando Sleep(3000), utilizei para aguardar 3 segundo até que adobe seja aberto, para posteriormente ser fechado pelo comando seguinte:
PostMessage(FindWindow(nil, 'Adobe Reader'), WM_CLOSE, 0, 0);
Obs:
Talvez seja necessário ajustar o tempo do comando "Sleep" (em milissegundos) para funcionar adequadamente.
GOSTEI 0
Dorivan Sousa
30/04/2015
Aqui encontra como executar um comando e esperar ele ser concluido... com isso voce pode executar a impressao e ao final fechar o adobe...
https://www.devmedia.com.br/forum/executar-um-comando-e-esperar-ele-ser-finalizado/135925
https://www.devmedia.com.br/forum/executar-um-comando-e-esperar-ele-ser-finalizado/135925
GOSTEI 0
Silvio Morelo
30/04/2015
Agradeço a todos pela ajuda funcionou corretamente.
Obrigado.
Obrigado.
GOSTEI 0
Silvio Morelo
30/04/2015
Agradeço a todos pela ajuda funcionou corretamente.
Obrigado.
Obrigado.
GOSTEI 0
Marisiana Battistella
30/04/2015
Que bom que deu certo!
Retorne sempre que puder! =)
Retorne sempre que puder! =)
GOSTEI 0