Saber quando é LPT1 ou USB???

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

Moderador: Moderadores

Avatar do usuário
ERASMO ANDRIOLI
Usuário Nível 2
Usuário Nível 2
Mensagens: 51
Registrado em: 15 Jul 2004 16:15
Localização: Sorriso-MT
Contato:

Saber quando é LPT1 ou USB???

Mensagem por ERASMO ANDRIOLI »

Amigos... Companheiros das horas de folga...

Me opinem sobre o seguinte: POSTEM FONTES EXEMPLOS

Se tenho um cliente que vai mandar imprimir um relatorio, e ele tem um printer matricial....

Como configurar o fonte .prg para ler o tipo de impressora (lpt, usb) para que a impressao ocorra de maneira satisfatoria?

Quero usar assim:
- para usb: WIN32PRN
- para lpt1: PRINTFILERAW

Na verdade quero mandar imprimir um arquivo .prn já pronto (EXTRATO.PRN)... creio que os amigos sabem que o Harbour necessitara nesse caso de parametros (que devem ser passados) do tipo de impressora a ser usada e do arquivo a ser impresso.

Se possivel passem um modelo de fonte bem facil de entender.

Obrigado...

Erasmo. :P
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Mensagem por Hasse »

Erasmo.

O exemplo abaixo foi tirado de:
https://pctoledo.org/forum/viewtopic.php?t=6465

Este exemplo possui quase todos os recursos que normalmente são usados. Você poderia pegar aquele código, compilar e ver os resultados. O código está bem comentado e é de fácil interpretação.

O exemplo abaixo permite escolher a impressoras entre todas aquelas que estiverem devidamente instaladas, inclusive as instaladas em portas USB, e também as de rede.

Código: Selecionar todos

FUNCTION Main() 
  LOCAL nPrn:=1 
  LOCAL aPrn:= GetPrinters() 
  CLS 
  IF EMPTY(aPrn) 
    Alert("No printers installed - Cannot continue") 
    QUIT 
  ENDIF 
  DO WHILE !EMPTY(nPrn) 
    CLS 
    @ 0,0 SAY 'Programa de teste Classe WIN32PRN(). Escolha uma impressora. ESC' +; 
              ' para sair.' 
    @ 1,0 TO maxRow(),maxCol() 
    nPrn:= ACHOICE(2,1,maxRow()-1,maxCol()-1,aPrn,.T.,,nPrn) 
    IF !EMPTY(nPrn) 
      PrnTest(aPrn[nPrn]) 
    ENDIF 
  ENDDO 
  * 
  @ 22,00 say "" 
  RETURN(NIL) 
Se você tem impressoras de nomes conhecidos, podes eliminar este código acima, e informar o nome dela, tipo:


Código: Selecionar todos

PrnTest("Epson Stylus Color")
........
........
........
STATIC FUNCTION PrnTest(cPrinter) 
   LOCAL oPrinter:= WIN32PRN():New(cPrinter), aFonts, x, nColFixed, ColTTF, nColCharSet, aForms 
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

De uma consultada no HELP do xharbour que tem a função "GetPrinters( .T. )" que retorna 4 elementos sendo que o segundo é o nome da porta.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
ronnimadeira
Usuário Nível 1
Usuário Nível 1
Mensagens: 17
Registrado em: 16 Jan 2008 23:37
Localização: ITAOCARA

Impressora Padrão do windows

Mensagem por ronnimadeira »

Existe algum recurso que ele consiga mostra qual a impressora padrão do windows?
xHarbour 1.0 + GTWVW
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Código: Selecionar todos

GetDefaultPrinter() 
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
paiva
Usuário Nível 3
Usuário Nível 3
Mensagens: 300
Registrado em: 04 Ago 2005 10:28

impr usb ou nao

Mensagem por paiva »

BOA, quando precisei saber se era usb ou NAO, ate consegui + parece que so se for LOCAL a impressora em REDE parece que NAO é possivel OU eu NAO conseegui entao fiz uma tabela no sistema que informo uma IDENTIFICACAO da IMPRESSORA e se ela e´USB faço isso somente para as USB

PAiva
Avatar do usuário
alaminojunior
Colaborador
Colaborador
Mensagens: 1717
Registrado em: 16 Dez 2005 21:26
Localização: Ubatuba - SP

Mensagem por alaminojunior »

Muito simples, é só renomear, adicionando a interface ao nome.
Compilador xHarbour 1.2.3 + Embarcadero C++ 7.30
MySQL c/ SQLRDD
HwGui + GTWVG
Avatar do usuário
sygecom
Administrador
Administrador
Mensagens: 7131
Registrado em: 21 Jul 2006 10:12
Localização: Alvorada-RS
Contato:

Mensagem por sygecom »

Paiva, se vc esta usando o comando "GetPrinters(.t.)" para pegar a lista de impressora, ai tera problemas pq com o .t. na função ele só pega as impressora local, se deixar sem nd, ele pega todas que tiverem instalada no micro.
Leonardo Machado
xHarbour.org + Hwgui + PostgreSql
Avatar do usuário
Wanderlei
Usuário Nível 3
Usuário Nível 3
Mensagens: 196
Registrado em: 25 Jan 2008 13:19
Localização: Goiânia - GO

Mensagem por Wanderlei »

Olha Pessoal eu estou usando esta função para pegar a porta tanto local como de rede.

FUNCTION SelectPrinter()
LOCAL nPrn:=1
LOCAL aPrn:= GetPrinters(.t.)
IF EMPTY(aPrn)
wvw_messagebox(,"Não foi encontrada nenhuma Impressora Instalada!",48)
Return
ENDIF
DO WHILE !EMPTY(nPrn)
Setcolor("N/W")
WVW_nOpenWindow("Escolha uma impressora",2,1,10,40)
nPrn:= ACHOICE(2,1,10,40,getprinters(),.T.,,nPrn)
IF nPrn == 0
exit
ENDIF
wvw_messagebox(aPrn[nPrn][2],64)
wvw_lclosewindow()
ENDDO
RETURN(NIL)

Wanderlei
:|<
Responder