IMPRESSAO DE LOTES DE PDFS
Prezados,
Tenho em um diretório uma relação de PDFs, como possuo uma impressora a laser rápida, gostaria que o PROGRAMA pudesse pegar o lote de PDFs e mandar direto para impressora, sem ter que abrir um por um e enviar, pois, a impressão ficará muito lenta.
Att.
Tenho em um diretório uma relação de PDFs, como possuo uma impressora a laser rápida, gostaria que o PROGRAMA pudesse pegar o lote de PDFs e mandar direto para impressora, sem ter que abrir um por um e enviar, pois, a impressão ficará muito lenta.
Att.
Alguem teria alguma idéia??
Alguma luz para o meu problema?
Vc tem alguma rotina ja pronta de impressao do pdf sem abri-lo?
é exatamente o que eu quero, conseguir envi-alos diretamente para a impressora....
acho que vc pode imprimir um documento via linha de comando
Ola JMANGAS,
Bom, não sei se vai te auxiliar, porém vamos lá:
Tenho uma rotina pra imprimir arquivos pdf [Ô]sem abrir[Ô], foi a forma mais rapida que encontrei para imprimir um único arquivo, ou [Ô]um lote[Ô], de arquivos, estou utilizando o programa Ghostscript 8.63, com ele é possÃvel enviar apenas um arquivo para impressão, ou então fazer uma junção de vários arquivos criando apenas um pdf, para imprimir.
Consegui identificar que se você enviar arquivo por arquivo a impressão fica lenta pq a impressora tem o tempo de inicio de impressão, agora se você enviar um arquivo com várias paginas a impressão é mais rápida, então segue o link para você baixar o arquivo e o código utilizado para imprimir um único arquivo ou o arquivo em lote.
Ghostscript 8.63 : http://files.brothersoft.com/pdf_files/miscellaneous/gs863w32.exe
vImpressoraNFE = Nome da impressora (Printers.DeviceName)
vPDF = Caminho do arquivo pdf
Essa primeira linha utiliza um Device diferente ljet4, identifiquei que algumas impressoas a laser de maior porte utilizam esse driver e as outras mais simples utilizam o driver mswinpr2
Exemplo 1 : Shell [Ô]C:\Arquivos de programas\gs\gs8.63\bin\gswin32.exe -sDEVICE=ljet4 -dSAFER -dNoCancel -dNOPAUSE -dBATCH -sPAPERSIZE=a4 -sOutputFile=\\spool\[Ô] & vImpressoraNFE & [Ô] [Ô] & vPDF & [Ô] quit.ps ,vbHide[Ô]
Exemplo 2 : Shell [Ô]C:\Arquivos de programas\gs\gs8.63\bin\gswin32.exe -sDEVICE=mswinpr2 -dSAFER -dNoCancel -dNOPAUSE -dBATCH -sPAPERSIZE=a4 -sOutputFile=\\spool\[Ô] & vImpressoraNFE & [Ô] [Ô] & vPDF & [Ô] quit.ps ,vbHide[Ô]
Agora veja um exemplo de [Ô]junção[Ô] dos arquivos .pdf:
vTXT = [Ô]C:\DANFE\[Ô] & TxComando.Text & Format(Now, [Ô]dd.mm.yyy.hh.mm.ss[Ô]) & [Ô].txt[Ô]
vPDF = [Ô]C:\DANFE\[Ô] & TxComando.Text & Format(Now, [Ô]dd.mm.yyy.hh.mm.ss[Ô]) & [Ô].pdf[Ô]
Open vTXT For Output As #1
Print #1, Tab(0); vCaminhoDanfe
Print #1, Tab(0); vCaminhoDanfe
Print #1, Tab(0); vCaminhoDanfe
Close #1
Shell [Ô]C:\Arquivos de programas\gs\gs8.63\bin\gswin32.exe -sDEVICE=pdfwrite -dSAFER -dPDFSETTINGS=/prepress -dBATCH -sPAPERSIZE=a4 -dNOPAUSE -sOutputFile=[Ô] & vPDF & [Ô] @[Ô] & vTXT & [Ô] -c -q[Ô], vbHide
Nesse ponto, se o arquivo .txt tiver muitos arquivos pdf, ou se forem grandes pode demorar alguns segundos, ou minutos, então é bom monitorar se realmente finalizou o processo
(gswin32.exe) antes de executar novamente o comando de impressão.
Depois você executa o comando de impressão:
Shell [Ô]C:\Arquivos de programas\gs\gs8.63\bin\gswin32.exe -sDEVICE=ljet4 -dSAFER -dNoCancel -dNOPAUSE -dBATCH -sPAPERSIZE=a4 -sOutputFile=\\spool\[Ô] & vImpressoraNFE & [Ô] [Ô] & vPDF & [Ô] quit.ps ,vbHide[Ô]
Bom, qualquer dúvida, estou a disposição.
Abraços,
Igor Daniel
Bom, não sei se vai te auxiliar, porém vamos lá:
Tenho uma rotina pra imprimir arquivos pdf [Ô]sem abrir[Ô], foi a forma mais rapida que encontrei para imprimir um único arquivo, ou [Ô]um lote[Ô], de arquivos, estou utilizando o programa Ghostscript 8.63, com ele é possÃvel enviar apenas um arquivo para impressão, ou então fazer uma junção de vários arquivos criando apenas um pdf, para imprimir.
Consegui identificar que se você enviar arquivo por arquivo a impressão fica lenta pq a impressora tem o tempo de inicio de impressão, agora se você enviar um arquivo com várias paginas a impressão é mais rápida, então segue o link para você baixar o arquivo e o código utilizado para imprimir um único arquivo ou o arquivo em lote.
Ghostscript 8.63 : http://files.brothersoft.com/pdf_files/miscellaneous/gs863w32.exe
vImpressoraNFE = Nome da impressora (Printers.DeviceName)
vPDF = Caminho do arquivo pdf
Essa primeira linha utiliza um Device diferente ljet4, identifiquei que algumas impressoas a laser de maior porte utilizam esse driver e as outras mais simples utilizam o driver mswinpr2
Exemplo 1 : Shell [Ô]C:\Arquivos de programas\gs\gs8.63\bin\gswin32.exe -sDEVICE=ljet4 -dSAFER -dNoCancel -dNOPAUSE -dBATCH -sPAPERSIZE=a4 -sOutputFile=\\spool\[Ô] & vImpressoraNFE & [Ô] [Ô] & vPDF & [Ô] quit.ps ,vbHide[Ô]
Exemplo 2 : Shell [Ô]C:\Arquivos de programas\gs\gs8.63\bin\gswin32.exe -sDEVICE=mswinpr2 -dSAFER -dNoCancel -dNOPAUSE -dBATCH -sPAPERSIZE=a4 -sOutputFile=\\spool\[Ô] & vImpressoraNFE & [Ô] [Ô] & vPDF & [Ô] quit.ps ,vbHide[Ô]
Agora veja um exemplo de [Ô]junção[Ô] dos arquivos .pdf:
vTXT = [Ô]C:\DANFE\[Ô] & TxComando.Text & Format(Now, [Ô]dd.mm.yyy.hh.mm.ss[Ô]) & [Ô].txt[Ô]
vPDF = [Ô]C:\DANFE\[Ô] & TxComando.Text & Format(Now, [Ô]dd.mm.yyy.hh.mm.ss[Ô]) & [Ô].pdf[Ô]
Open vTXT For Output As #1
Print #1, Tab(0); vCaminhoDanfe
Print #1, Tab(0); vCaminhoDanfe
Print #1, Tab(0); vCaminhoDanfe
Close #1
Shell [Ô]C:\Arquivos de programas\gs\gs8.63\bin\gswin32.exe -sDEVICE=pdfwrite -dSAFER -dPDFSETTINGS=/prepress -dBATCH -sPAPERSIZE=a4 -dNOPAUSE -sOutputFile=[Ô] & vPDF & [Ô] @[Ô] & vTXT & [Ô] -c -q[Ô], vbHide
Nesse ponto, se o arquivo .txt tiver muitos arquivos pdf, ou se forem grandes pode demorar alguns segundos, ou minutos, então é bom monitorar se realmente finalizou o processo
(gswin32.exe) antes de executar novamente o comando de impressão.
Depois você executa o comando de impressão:
Shell [Ô]C:\Arquivos de programas\gs\gs8.63\bin\gswin32.exe -sDEVICE=ljet4 -dSAFER -dNoCancel -dNOPAUSE -dBATCH -sPAPERSIZE=a4 -sOutputFile=\\spool\[Ô] & vImpressoraNFE & [Ô] [Ô] & vPDF & [Ô] quit.ps ,vbHide[Ô]
Bom, qualquer dúvida, estou a disposição.
Abraços,
Igor Daniel
Boa noite IGORDANIEL,
Obrigado pela atenção.... Vou baixar e montar o exemplo para ver como fica.... Desde já agradeço....
Obrigado pela atenção.... Vou baixar e montar o exemplo para ver como fica.... Desde já agradeço....
Tópico encerrado , respostas não são mais permitidas