Página 1 de 1
Copiar arquivo PDF já existente para impressora
Enviado: 26 Jul 2015 12:09
por NiltonGM
Prezados,
Como faço para copiar um arquivo
pdf já existente para impressora, busquei nos exemplos e na web e vi muitas coisas de impressão, mas o que eu quero não consegui. Em clipper executávamos assim:
Código: Selecionar todos
cPrint := 'LPT1'
cFile := 'arquivo_x.pdf'
cRun := 'Copy ' + cFile + ' ' + cPrint
!&cRun.
Só que em Harbour / hmg quero usar: cPrint := GetPrinter() // Impessora Laser/Jato de Tinta escolhida pelo usuário e salva em variável, existe um comando mais elegante em Harbour para jogar o pdf para impressora?
No aguardo.
Copiar arquivo PDF já existente para impressora
Enviado: 26 Jul 2015 15:10
por Toledo
Amigo, você poderia abrir o arquivo PDF e depois é só escolher a impressora onde será impresso.
Abraços,
Copiar arquivo PDF já existente para impressora
Enviado: 26 Jul 2015 21:14
por NiltonGM
Oi Toledo,
Eu não me expressei direito, acho melhor explicar o que estou fazendo: é um sistema de monitoramento, as emissões de conhecimentos em PDF ocorre em meu programa na web em PHP para emissão de CT-e de várias filiais em cidades diferentes, usuários emitem os CT-es, após autorizado pela Sefaz meu sistema na web gera o PDF. Na empresa Matriz tem um servidor local ligado a uma ou mais impressoras laser para imprimir as DACTE's (os PDF dos CT-es) porem está na Web e como são muitos PDFs não será possível abri-los na área de trabalho do servidor pois não haverá usuários para manualmente envia-los a impressora, tem que ser dinâmico tipo autorizou, imprimiu automático. É aí que entra a salvação do Harbour, meu programa em Harbour rodando oculto na barra de tarefas no servidor local. Nesse programa local ficará configurado os nomes das impressoras e status online ou offline por filial que imprimem CT-es.
Já consegui fazer-lo rodar na barra de tarefas, acesso o MySQL na web (datacenter), seleciono os CT-es que não foram impressos. A partir daí eu não sei quais são os comandos para o seguintes passos:
1) Dar o donwload do arquivo PDF (eu tenho o link e nome do arquivo na web armazenado no registro do CTe que deverá ser impresso)
2) Após baixar o PDF, copiar automaticamente para impressora local sem intervenção de usuário (em PHP tem funções que pega um PDF através de um link na web para dowload entre servidores na web)
Conto com sua ajuda e do grupo.
Obrigado.
Copiar arquivo PDF já existente para impressora
Enviado: 27 Jul 2015 08:15
por Toledo
NiltonGM escreveu:1) Dar o donwload do arquivo PDF
Você poderia usar FTP para copiar o arquivo, no Contrib do Harbour tem exemplo, veja
\contrib\hbtip\tests\dnldftp.prg.
Na HMG não encontrei nada sobre download, não sei se existe algum demo na \SAMPLES da HMG, eu sempre me perco nas pastas da \SAMPLES da HMG, é difícil encontrar alguma coisa por lá. Já na MiniGui Extended, veja as pastas:
C:\MiniGUI_2_4_8\SAMPLES\Advanced\Downloader\download.prg
C:\MiniGUI_2_4_8\SAMPLES\Advanced\FtpClient\demo.prg
NiltonGM escreveu:2) Após baixar o PDF, copiar automaticamente para impressora local sem intervenção de usuário
Bom, neste caso você vai precisar de ajuda de um programa externo, como por exemplo o
SumatraPDF.
Comando no SumatraPDF para imprimir da impressora Padrão:
SumatraPDF.exe -print-to-default arquivo.pdf
Para imprimir em um impressora específica:
SumatraPDF.exe -print-to "Nome da Impressora no Windows" arquivo.pdf
Abraços,
Copiar arquivo PDF já existente para impressora
Enviado: 27 Jul 2015 11:40
por Toledo
Amigo, em um outro tópico na seção Harbour você postou:
NiltonGM escreveu:Precisava de algo parecido em Harbour HMG, estou precisando baixar um arquivo PDF através de um link na web.
Toledo escreveu:na MiniGui Extended, veja as pastas:
C:\MiniGUI_2_4_8\SAMPLES\Advanced\Downloader\download.prg
Este demo da MiniGui Extended vai fazer o que você quer, este demo não usa FTP, faz a copia de um arquivo na net, qualquer tipo de arquivo, inclusive PDF.
Abraços,
Copiar arquivo PDF já existente para impressora
Enviado: 28 Jul 2015 10:16
por NiltonGM
Oi Toledo,
Quanto a baixar o arquivo remoto conversei com o responsável do Datacenter e me disponibilizaram o acesso FTP, usei as classes HBTIP, já está funcionando.
Agora quanto imprimir automaticamente o PDF baixado via FTP farei testes com o SumatraPDF.exe que vc mencionou. Posto aqui o resultado.
Um forte abraço e muito obrigado.
Copiar arquivo PDF já existente para impressora
Enviado: 31 Jul 2015 12:32
por NiltonGM
Olá Toledo e pessoal do forum,
Usar o programa SumatraPDF.exe só funciona no prompt de comando do DOS, não consegui faze-lo funcionar usando o comando execute do Harbour, o que será que está errado?
Com a pasta SumatraPDF do aplicato na variável PATH, No prompt de comando imprime o pdf assim:
C:\pasta\pdf_ctes>SumatraPDF.exe -print-to Brother_DCP7055 35150757296543000115570010000064551000019170.pdf
Imprime com sucesso.
Já no programa em tempo de execução usando o comando execute não imprime:
Código: Selecionar todos
Local cFileExe := 'SumatraPDF.exe -print-to ' + cPrinter + ' ' + cFilePDF
execute file (cFileExe)
Lembrando que coloquei o path do SumatraPDF no PATH do sistema.
Deve haver alguma função ou comando do Harbour para enviar um pdf para impressora que não seja o execute.
Copiar arquivo PDF já existente para impressora
Enviado: 31 Jul 2015 12:50
por NiltonGM
Descobri o que estava errado, a sintaxe do comando execute. Fiz a seguinte correção:
Código: Selecionar todos
// Local cFileExe := 'SumatraPDF.exe -print-to ' + cPrinter + ' ' + cFilePDF //<<= Errado
Local cParameters := '-print-to ' + cPrinter + ' ' + cFilePDF // <<== Correto
// execute file (cFileExe) // <<= Errado
EXECUTE FILE 'SumatraPDF.exe' PARAMETERS (cParameters)
Funcionou para nossa alegria!!!

)
Copiar arquivo PDF já existente para impressora
Enviado: 31 Jul 2015 12:55
por asimoes
Poder ser impresso desta forma em linha de comando:
start acrord32 /h /p seupdf.pdf
Copiar arquivo PDF já existente para impressora
Enviado: 03 Ago 2015 17:16
por NiltonGM
asimoes escreveu:Poder ser impresso desta forma em linha de comando:
start acrord32 /h /p seupdf.pdf
Olá Simões, desse jeito não funciona, apenas joga o pdf para o Acrobat Reader que abre na tela e não envia para impressora automaticamente.