Clipper On Line • Ver Tópico - impressão de PDF

impressão de PDF

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

impressão de PDF

Mensagempor cjp » 06 Nov 2020 18:11

Pessoal, estou usando o código abaixo, que recebi de alguém em algum grupo, para imprimir PDFs. Funciona bem.
Mas gostaria que o sistema imprimisse diretamente na impressora padrão, sem abrir a caixa de diálogo do Windows para confirmar a impressão.
Alguém sabe me dizer se isso é possível?

FUNCTION print_somepdf(cNomePDF)
         LOCAL cPrn,ncop := 1
      
         Win_PrintDlgDC( @cPrn,,,ncop)
//                  win_PrintDlgDC( [@<cDevice>],[<nFromPage>],[<nToPage>],[<nCopies>] )
         IF !( EMPTY( cPrn ) )
            wapi_ShellExecute( 0, "print",cNomePDF, cPrn , 0, 0 )
         ENDIF
RETURN

Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

impressão de PDF

Mensagempor Fernando queiroz » 06 Nov 2020 18:48

tenho usado o SUMATRA para isso

WAPI_ShellExecute(NIL, 'OPEN', hb_Dirbase()+'SUMATRA\SumatraPDF.EXE', '"' + oPDF:cFileName + '" -print-to "' + oPDF:cDefaultPrinter + '"',, NIL )
HARBOUR 3.2, HWGUI 2.23 B3, SEFAZCLASS, PDFClass, ADO + MariaDB/MySQL, RMChart
Fernando queiroz
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 737
Data de registro: 12 Nov 2014 23:41
Cidade/Estado: Porto Alegre/RS
Curtiu: 12 vezes
Mens.Curtidas: 58 vezes

impressão de PDF

Mensagempor rochinha » 07 Nov 2020 00:40

Amiguinhos,

cjp no lugar de Win_PrintDlgDC( @cPrn,,,ncop) use cPrn := Win_PrinterGetDefault()
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

impressão de PDF

Mensagempor cjp » 07 Nov 2020 00:59

Resolvido. Muito obrigado.
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

impressão de PDF

Mensagempor cjp » 01 Dez 2020 23:28

Sabem me dizer como faria para imprimir numa impressora específica, que não é a padrão? Teria como colocar o nome da impressora especificamente? Como faria isso?
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

impressão de PDF

Mensagempor rochinha » 02 Dez 2020 12:24

Amiguinhos,

cjp
Veja que cPrn := Win_PrinterGetDefault() pega o nome da impressora padrão.

Basta colocar o nome da impressora como aparece na lista de impressoras do seu Windows, exemplo: cPrn := "Epson LX 310"
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para fivolution@hotmail.com. Agradecido.

@braços : ? )

A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
Avatar de usuário

rochinha
Membro Master

Membro Master
 
Mensagens: 4538
Data de registro: 18 Ago 2003 20:43
Cidade/Estado: São Paulo - Brasil
Curtiu: 800 vezes
Mens.Curtidas: 242 vezes

impressão de PDF

Mensagempor cjp » 08 Dez 2020 14:04

Entendido. Muito obrigado.
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

impressão de PDF

Mensagempor cjp » 15 Dez 2020 10:04

Caros colegas,

Ainda estou com um problema nesta rotina: de vez em quando, não sei porquê, ele resolve não imprimir na impressora padrão, mas em pdf, abrindo uma caixa de diálogo para eu escolher o local onde salvará o pdf.

Fiz a seguinte modificação na rotina, para tentar forçar a imprimir na impressora Epson:

         cPrn := Win_PrinterGetDefault()
       if at("EPSON",upper(cPrn))=0
          cPrn="EPSON WF-2860 Series"
       endif


Achei que isso resolveria, mas não resolveu. Ele continua tentando imprimir em pdf.

Antes já tinha tentando com:

         Win_PrintDlgDC( @cPrn,,,ncop)


Mas, mesmo escolhendo a impressora Epson, ele não imprimia.

O estranho é que isso ocorre só eventualmente. Na maioria das vezes, imprime diretamente na Epson, o Win_PrinterGetDefault já pega corretamente a Epson.

Também já verifiquei que, quando reinicio o sistema, o problema é corrigido.

Alguém poderia me ajudar com isso?
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

impressão de PDF

Mensagempor Jairo Maia » 19 Dez 2020 11:52

cjp escreveu:Também já verifiquei que, quando reinicio o sistema, o problema é corrigido.
Está usando impressora WiFi? Impressoras EPSON WiFi perdem a conexão com frequência depois de um tempo de inatividade.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar de usuário

Jairo Maia
Colaborador

Colaborador
 
Mensagens: 2733
Data de registro: 16 Ago 2010 13:46
Cidade/Estado: Campinas-SP
Curtiu: 371 vezes
Mens.Curtidas: 305 vezes

impressão de PDF

Mensagempor cjp » 08 Abr 2021 14:13

Desculpe, mas só agora voltei a este tópico.
De fato, estou usando uma impressora Epson, mas ela está ligada no cabo, não no wi-fi.
Não sei se o problema é na impressora, parece mais ser no meu computador.
Parece que ele está assumindo às vezes o Foxit como impressora padrão.
Pior é que, mesmo quando mudo manualmente a impressora a ser impressa, ele continua tentando imprimir no Foxit.
Por favor, verifiquem se fiz algo errado:

            cPrn := Win_PrinterGetDefault()
      
       if at("EPSON",upper(cPrn))=0
          cPrn="EPSON WF-2860 Series"
       endif
      
         IF !( EMPTY( cPrn ) )
            wapi_ShellExecute( 0, "print",cNomePDF, cPrn , 0, 0 )


Isso não deveria fazer com que imprimisse sempre na Epson?
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

impressão de PDF

Mensagempor malcarli » 08 Abr 2021 15:41

Utilizo assim

****************** Visualizar e Imprimir Arquivos PDF **************************
Procedure fVerPdf(cFilePdf)
   Local cPrinter:= GetDefaultPrinter(), lCkVisual:= .T.

   If _IsWindowDefined([frmAguarde])
      If _IsControlDefined([Cb_Impressora], [frmAguarde])
         cPrinter:= AllTrim(GetProperty([frmAguarde], [Cb_Impressora], [Item], GetProperty([frmAguarde], [Cb_Impressora], [Value])))
      Endif

      If _IsControlDefined([Ck_Visual], [frmAguarde])
         lCkVisual:= GetProperty([frmAguarde], [Ck_Visual], [Value])
      Endif
   Endif

   If !Hb_FileExists(cFilePdf)
      MsgStop([Arquivo Não Encontrado ou Sem Registros. Verifique!], cSistema)
   _FimEndif

   If Empty(cPrinter) .and. !lCkVisual
      MsgStop([Impressora Não Selecionada.], cSistema)
   _FimEndif

   If lCkVisual
      WAPI_ShellExecute(Nil, [OPEN], cFilePdf, Nil,, Nil )
   Else
      WAPI_ShellExecute(0, [PRINTTO], cFilePdf, ["] + cPrinter + ["], 0, 0)
   Endif
Return (Nil)
malcarli
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 181
Data de registro: 20 Ago 2015 18:14
Cidade/Estado: marilia/sp
Curtiu: 81 vezes
Mens.Curtidas: 4 vezes

impressão de PDF

Mensagempor cjp » 23 Abr 2021 01:11

Testando o teu exemplo, por enquanto não tive mais problemas.
Muito obrigado.
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

impressão de PDF

Mensagempor malcarli » 19 Mai 2021 10:51

Bom dia, tenho a rotina que postei acima para imprimir um pdf em uma impressora selecionada. Acrobat reader instalado. Usando me x Harbour. Agora em alguns clientes, o problema que o acrobat fica ativo no gerenciador de impressão, elevando a cpu a 100%. Tentei usar rotina para fechar o acrobat, mas se fechar não imprime. Alguma sugestão?

Att.

Marcelo A. L. Carli
Marília/SP
Capital Nacional do Alimento ®

https://malc-informatica.ueniweb.com
http://marcelo.lx.com.br
Email / Skype: malcarli@life.com.br
malcarli
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 181
Data de registro: 20 Ago 2015 18:14
Cidade/Estado: marilia/sp
Curtiu: 81 vezes
Mens.Curtidas: 4 vezes

impressão de PDF

Mensagempor Mario Mesquita » 19 Mai 2021 19:37

Boa noite a todos.

Pessoal, aproveitando o tema PDF, uma coisa estranha me aconteceu e se alguém passou, poder me dar uma luz:

Eu uso a PDF Class para gerar um arquivo PDF, sempre funcionou bem, mas hoje em um cliente, simplesmente o programa não gerou o PDF.

Será algo no Windows, algum bloqueio, algo com permissão de usuário? O programa roda, parece que fez mas não gerou o PDF.

Se alguém passou por algo parecido e puder comentar, desde já agradeço.

Saudações,
Mario.
Avatar de usuário

Mario Mesquita
Usuário Nível 4

Usuário Nível 4
 
Mensagens: 557
Data de registro: 08 Dez 2009 12:47
Cidade/Estado: Rio de Janeiro
Curtiu: 73 vezes
Mens.Curtidas: 13 vezes

impressão de PDF

Mensagempor cjp » 13 Abr 2022 23:08

Pessoal, estou tendo um problema com esta função desde que mudei de computador. Até semana passada estava funcionando tudo perfeitamente. Mas agora, no novo computador, está dando um erro estranho (vide imagem anexa).

Segue a função que estou executado, para conferência:

FUNCTION print_somepdf(cNomePDF)
         LOCAL cPrn,ncop := 1
    local cHora
         cPrn="EPSON26B563 (WF-2860 Series)"
         WAPI_ShellExecute(0, [PRINTTO], cNomePDF, ["] + cPrn + ["], 0, 0)
RETURN .t.


Já conferi: a impressora Epson existe, está cadastrada no sistema exatamente com este nome.
A mensagem de erro é estranha, pois não estou imprimindo em PDF.
Alguém me ajuda?
Anexos
tela.png
Inacio de Carvalho Neto
cjp
Usuário Nível 6

Usuário Nível 6
 
Mensagens: 1527
Data de registro: 19 Nov 2010 21:29
Cidade/Estado: paraná
Curtiu: 10 vezes
Mens.Curtidas: 20 vezes

Próximo



Retornar para Harbour

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 2 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro