Página 1 de 1
Saber quando é LPT1 ou USB???
Enviado: 01 Mar 2008 19:01
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.

Enviado: 01 Mar 2008 20:50
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
Enviado: 09 Mar 2008 14:07
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.
Impressora Padrão do windows
Enviado: 09 Mar 2008 16:40
por ronnimadeira
Existe algum recurso que ele consiga mostra qual a impressora padrão do windows?
Enviado: 09 Mar 2008 16:42
por sygecom
impr usb ou nao
Enviado: 25 Mar 2008 08:51
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
Enviado: 25 Mar 2008 09:32
por alaminojunior
Muito simples, é só renomear, adicionando a interface ao nome.
Enviado: 26 Mar 2008 13:26
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.
Enviado: 04 Abr 2008 08:31
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
:|<