HP DESKJET 3535

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Avatar do usuário
Netavin
Usuário Nível 3
Usuário Nível 3
Mensagens: 306
Registrado em: 28 Fev 2007 08:37
Localização: Cacoal-RO

HP DESKJET 3535

Mensagem por Netavin »

Colegas !
Tenho procurado os comandos da impressora em referência e não encontro.
Alguém poderia me fornecer, pls ?

[]´s

Netavin.
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
ederxc
Usuário Nível 4
Usuário Nível 4
Mensagens: 619
Registrado em: 15 Set 2006 08:40
Localização: Pedreira -SP-

Mensagem por ederxc »

Fala brother !
Eis aqui os codigos para deskjet , eu uso na linha 640

Código: Selecionar todos


A=CHR(27)+'(s16.67H'                              // ativa comprimido 17,5 cpp
B=CHR(27)+'(s10H'                                 // desativa comprimido 17,5 cpp
C=chr(27)+ "(" + chr(115) + "20" + "H"           // ativa comprimido 20 cpp
D=CHR(27)+CHR(40)+CHR(115)+CHR(49)+CHR(48)+CHR(72) // desativa //comprimido 20 cpp


   E=CHR(27)+'(s12H'                                  // ativa elite
   F=CHR(27)+'(s10H'                                  // desativa elite
   G=CHR(27)+'(s3B'                        // ativa negrito
   H=CHR(27)+'(s-3B'                       // desativa negrito
   I=CHR(27)+'(s3B'                        // ativa expandido
   J=CHR(27)+'(s-3B'                       // desativa expandido
   K=CHR(27)+'(s1P'                        // ativa 8 lin/pol
   L=CHR(27)+'(s0P'                        // ativa 6 lin/pol
   M=CHR(27)+'&l1O'                        // ativa landscape
   N=CHR(27)+'&l0O'                        // ativa portrait
   O=chr(27)+chr(38)+chr(108)+chr(49)+chr(79) // Ativa rascunho
   P=chr(27)+chr(38)+chr(108)+chr(48)+chr(79) //Desativa Rascunho 
C:\Xharbour\Xdev\Fw\VSX
tonyx
Usuário Nível 3
Usuário Nível 3
Mensagens: 303
Registrado em: 07 Jul 2004 15:26

res hp

Mensagem por tonyx »

FUNCTION MATRICIAL(TIP_IMPRES)
ESC:= CHR(27)
COMPRIMIR = CHR(15)
DCOMPRIMIR= CHR(18)
NEGRITO = ESC+'G'
DNEGRITO = ESC+'H'
*------
C_00 = ESC+'@' && RESET MA IMPRESSORA
IF TIP_IMPRES = 'R'
*--------- RETRATO ------------
LIN_MAX:= IF(LIN_MAX > 60,62,LIN_MAX)
ELSE
*------ PAISSAGEM --------
LIN_MAX:= IF(LIN_MAX > 43,45,LIN_MAX)
ENDIF
COMANDOS:= C_00
*----------
IF opcao_PRN $ ('VD')
ESC:= COMPRIMIR:= DCOMPRIMIR:= NEGRITO:= DNEGRITO:= ''
C_00:= C_01:= C_02:= COMANDOS:= GRAFICOS:= ''
ENDIF
RETURN(COMANDOS)
*----------
*
FUNCTION DESKJET(TIP_IMPRES)
*------- PARA IMPRESSORA DESKJET ---------------
FONTE_10:= "(s0p10h10v0s0b4148T" && normal
FONTE_10B:= "(s0p10h10v0s3b4148T" && normal_negrito
FONTE_05:= "(s0p14.25h12v0s7b4148T" && comprimido
*--------------------------------
COMPRIMIR := FONTE_05
DCOMPRIMIR := FONTE_10
NEGRITO := FONTE_10B
DNEGRITO := FONTE_10
C_00 = "E"
IF TIP_IMPRES = 'R'
*--------- RETRATO ------------
C_01 = "&l0O" && ESCREVER TIPO RETRATO
C_02 = "&l0E" && MARGEM TOPO
C_03 = "&a0L" && MARGEM DIREITA
C_04 = "&l8C" && ESPACO ENTRE LINHAS
C_05 = "(12U" && PARA LETRAS ACENTUADAS
LIN_MAX:= IF(LIN_MAX > 60,62,LIN_MAX)
ELSE
*------ PAISSAGEM --------
C_01 = "&l1O" && ESCREVER TIPO PAISSAGEM
C_02 = "&l0E" && MARGEM TOPO
C_03 = "&a0L"+"&a0R" && MARGEM DIREITA
C_04 = "&l8C" && ESPACO ENTRE LINHAS
C_05 = "(12U" && PARA LETRAS ACENTUADAS
LIN_MAX:= IF(LIN_MAX > 43,45,LIN_MAX)
ENDIF
COMANDOS:= C_00+C_01+C_02+C_03+C_04+C_05
*-------
IF OPCAO_PRN $ ('VD')
FONTE_10:= FONTE_10B:= FONTE_05:= ''
COMPRIMIR:= DCOMPRIMIR:= NEGRITO:= DNEGRITO:= ''
C_00:= C_01:= C_02:= C_03:= C_04:= C_05:= COMANDOS:= ''
ENDIF
RETURN(COMANDOS)
*----------------------------
os quadradinho e chr(27)
Avatar do usuário
Netavin
Usuário Nível 3
Usuário Nível 3
Mensagens: 306
Registrado em: 28 Fev 2007 08:37
Localização: Cacoal-RO

hp 3535

Mensagem por Netavin »

... não precisava ser tão rápido! ehehe

Obrigado colegas! Vou testar.
... enquanto isso, apenas para informação, bati um "chat" com um atendente da HP e ele me informou que é " impossível " trabalhar com essa impressora via DOS. :|
Será que eu acredito ? rs

Abraço a todos !

[]´s

Netavin
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

ohhh coitado desse atendente da HP...

Ele desconhece a força aliada que temos de bibliotecas. Por aí ja você percebe que há preconceito dos sistemas "non-GUI".

Um clip-abraço :)Pos
Avatar do usuário
Netavin
Usuário Nível 3
Usuário Nível 3
Mensagens: 306
Registrado em: 28 Fev 2007 08:37
Localização: Cacoal-RO

hp 3535

Mensagem por Netavin »

... caro Tonyx, não é só colocar o comando antes da linha a ser impressa ?
Senão vejamos:
Negrito:= comando negrito
? negrito + "texto a ser impresso"
.
.

Fiz isso e não funcionou.

Neetavin.
TK90 / TK95 / APPLE IIe / 286 / 386 / 486 / 586 / AMD Atlhon
" Sem saber que era impossível, foi lá e fez !! "
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem por Eolo »

Pessoal,

Um cliente meu trocou de impressora, uma HP da linha 640 por uma 3845, USB, "Windows Only" e o meu prg parou de imprimir. Tentei tudo o que foi santo, fucei em tudo o que foi forum, aqui no Brasil e nas estranja, incluindo o suporte da HP, e a conclusão (minha, certa ou errada) é que "printers windows only não aceitam comandos ESC". Se alguém aí tiver o caminho das pedras, bota no ar.

Eu já matei o problema: comprei o PageScript que, no modo RAW, fez a 3845 aceitar os comandos. Mas gostaria de saber da história das "windows only".

Eolo
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Re: hp 3535

Mensagem por Maligno »

Netavin escreveu:bati um "chat" com um atendente da HP e ele me informou que é " impossível " trabalhar com essa impressora via DOS. :|
Será que eu acredito ? rs
Acredite, pois ele está certo. Essa impressora possui driver Windows-only. Pelo DOS diretamente não dá. Só se você fizer uma "ponte" com um programa Windows.
Até seria possível imprimir diretamente em DOS se a HP desenvolvesse um driver USB para DOS, o que eles não farão, claro. :)

[]'s
Maligno
http://www.buzinello.com/prg
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Eolo escreveu:e a conclusão (minha, certa ou errada) é que "printers windows only não aceitam comandos ESC". Se alguém aí tiver o caminho das pedras, bota no ar.
As impressoras HP, até onde eu sei, utilizam sempre o esquema PCL, que tem seus comandos prefixados por ESC. A Deskjet 3845 é uma uma inkjet simples. Deveria aceitar PCL 5e ou 6 normalmente. Eu imprimo numa HP Laserjet 1022 (USB-only) com PCL 5e em modo RAW pelo WAPI. Não tenho tido qualquer problema.

[]'s
Maligno
http://www.buzinello.com/prg
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem por Eolo »

Maligno,

Ops, falei ESC mas pensando em PCL... Bem, comigo a 3845 não funcionou no DOS. Tentei fazer com ela o mesmo que fazia - com sucesso - com as 640 (por ex): botei ela em rede e direcionei a saída com NET USE LPT1: \\SERVIDOR\PRINTER. Coisas como DIR >PRN funcionaram normalmente, mas comandos para alterar o tamanho da página ou dos caracteres não. Ela simplesmente os ignorava.

CHATeei com a HP e me disseram que, por ser Windows Only, ela não aceitava comandos PCL via DOS (aliás, não foi isso que vc disse ao NETAVIN?). Então, parti pro PageScript (no modo RAW) e o problema foi resolvido, os comandos voltaram a funcionar normalmente.

Eolo
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Eolo escreveu:Coisas como DIR >PRN funcionaram normalmente, mas comandos para alterar o tamanho da página ou dos caracteres não. Ela simplesmente os ignorava.
De onde você está pegando os comandos PCL? Agora eu estou parado nisso. Só fiz um pouco. Mas quando fui montar minha LIB de abstração, me deparei com erros de manual. Comandos que não funcionavam. Fui atrás de outros manuais e consegui fazer esses mesmos comandos funcionarem. Pode ser aí.
CHATeei com a HP e me disseram que, por ser Windows Only, ela não aceitava comandos PCL via DOS (aliás, não foi isso que vc disse ao NETAVIN?).
Sim. Isso mesmo. Pelo DOS, diretamente, não há como transportar os comandos PCL até a impressora. Não há tráfego. Só usando uma ponte pra chegar até ela.
Então, parti pro PageScript (no modo RAW) e o problema foi resolvido, os comandos voltaram a funcionar normalmente.
A ponte. :)

[]'s
Maligno
http://www.buzinello.com/prg
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

Mensagem por Eolo »

Maligno,

Eu acho que impressão é mesmo um saco. Eu, costumo tentar convencer meus clientes que, relatório impresso em papel, só se o Papa pedir. Porque gasta papel, causa desmatamento, exige arquivos pra guardar relatórios impressos que nunca mais ninguém vê, blablabla...

Mostro o relatório (em DBF) na tela com o DBEdit() ou TBrowse(), com a possibilidade de mandar pra impressora só com uma senha fornecida pelo Papa e certificada digitalmente pelo Bin Laden... E, mesmo assim, sem nada de especial, só ASCII. Eu digo que "o que vale é a informação, não a forma!" (e a maioria entra na minha...). :)))))


Aliás, aproveitando o gancho (de um outro tópico): impressora tem um buffer, certo? Então, se o spool terminou o trabalho dele e a impressora ainda está descarregando o buffer, e nessa hora o papel enrosca, não adianta mais mexer no spool... Como fazer? Eu uso uma HP 1200, que imagino que tenha um buffer "meio grandinho", e pra "limpar" o buffer dela depois que o spool saiu de cena, às vezes nem desligando da tomada resolve. Já pesquisei a respeito mas não achei nenhuma resposta... Vc tem alguma dica?

Eolo
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Eolo escreveu:Porque gasta papel, causa desmatamento, exige arquivos pra guardar relatórios impressos que nunca mais ninguém vê, blablabla...
Pois eu também não gosto. Muito embora, com um gerador de relatórios decente, em programas Windows GUI, você pode fazer relatórios que são quase obras de arte. Dá gosto de ver. Mas em DOS, infelizmente, nunca fica muito bom. Mas há situações em que não dá pra ficar sem. Um cliente meu tem como principal auxílio à produção um relatório de +/- 150 páginas. O fogo era quando o papel enroscava na página 140. Minhas orelhas ficavam bem quentes quando isso acontecia, porque ele tinha que imprimir de novo. Pra felicidade das minhas orelhas, esse problema é passado. :)))
Aliás, aproveitando o gancho (de um outro tópico): impressora tem um buffer, certo? Então, se o spool terminou o trabalho dele e a impressora ainda está descarregando o buffer, e nessa hora o papel enrosca, não adianta mais mexer no spool... Como fazer?
Em impressoras matriciais isso representa um grande problema. Principalmente quando estão imprimindo notas fiscais. Se o buffer é grande e recebe tudo, ao enroscar danou-se. Resolvi isso desligando o buffer da impressora (as Epson tem esse recurso).
Agora, em impressoras for-Windows isso não é possível. Pelo menos nos modêlos que eu já conheci. Que eu saiba não existe um comando que seja prioritário (passa por cima da pilha interna de impressão), pra zerar o buffer de uma impressora. Se não existe, deveria existir. Tenho alguns manuais aqui. Mas eles são tão pobres que sequer descrevem certos comandos. Tem um tal de "Universal Exit Language". Lendo esse nome até dá a impressão que é um comando que faz exatamente isso. Mas nunca testei. É da PCL 5e. Se quiser testar, a seqüência é "ESC + %-12345X".
Eu uso uma HP 1200, que imagino que tenha um buffer "meio grandinho", e pra "limpar" o buffer dela depois que o spool saiu de cena, às vezes nem desligando da tomada resolve. Já pesquisei a respeito mas não achei nenhuma resposta... Vc tem alguma dica?
Veja bem: o buffer de todas as impressoras que eu já vi (pode existir alguma exceção) é de memória dinâmica volátil, o que significa que, sendo desligada, esperando um ou dois minutos a memória é apagada totalmente. Eu já testei na LJ1022. Isso acontece de fato.
Dica propriamente não tenho. Tenho a suspeita de algum comando como esse "Universal Exit Language", mas é só suspeita. Pra mim não é importante ir atrás disso. Minha forma de encarar esse tipo de problema é diferente. Já deixo claro pros meus clientes: problema de computador, impressora, modem, Windows, rede, etc. é problema DELE. Qualquer problema com o meu programa, que não esteja relacionado à hardware ou software de terceiros, é problema MEU. Cada macaco no seu galho. Se eu puder ajudar no problema dele, dando algum conselho, ótimo. Meu conhecimento estará à disposição. Mas não perco muito do meu tempo com isso. Prefiro me dedicar à coisas realmente importantes. Tenho coisa melhor pra fazer. :)

[]'s
Maligno
http://www.buzinello.com/prg
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Mensagem por Pablo César »

Será que o melhor caminho para nós que programamos em Clipper, seria gerar em arquivo (isto sem dúvida alguma) e em formato .RTF e deixar que o Word faça o seu trabalho, isto é, quem não sabem hoje em dia trabalhar em WINWORD. Cancelar formatar, alinhar textos, imprimir desde a página X até a página Y...

Nós não estamos acostumados, mas acho que se começassemos a trabalhar com RTF, muitos dos problemas sumiriam, não é ?.

Outra opção, fica muito trabalhosa de qualquer forma. Utilizar, LIBs, impriir através de aplicativos... Ou então o jeito seria mudar de linguagem de programação...

Um clip-abraço :)Pos
Avatar do usuário
Maligno
Membro Master
Membro Master
Mensagens: 6398
Registrado em: 06 Jul 2004 01:40
Localização: Londrina/PR

Mensagem por Maligno »

Pablo César escreveu:Ou então o jeito seria mudar de linguagem de programação...
Com esta última parte concordo plenamente. Já estou neste caminho, felizmente. :)

[]'s
Maligno
http://www.buzinello.com/prg
Responder