Página 1 de 2

HP DESKJET 3535

Enviado: 20 Abr 2007 13:20
por Netavin
Colegas !
Tenho procurado os comandos da impressora em referência e não encontro.
Alguém poderia me fornecer, pls ?

[]´s

Netavin.

Enviado: 20 Abr 2007 13:43
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 

res hp

Enviado: 20 Abr 2007 13:46
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)

hp 3535

Enviado: 20 Abr 2007 15:52
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

Enviado: 20 Abr 2007 15:58
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

hp 3535

Enviado: 20 Abr 2007 17:41
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.

Enviado: 20 Abr 2007 21:31
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

Re: hp 3535

Enviado: 21 Abr 2007 01:29
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

Enviado: 21 Abr 2007 01:33
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

Enviado: 21 Abr 2007 08:36
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

Enviado: 21 Abr 2007 10:20
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

Enviado: 21 Abr 2007 12:09
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

Enviado: 21 Abr 2007 18:04
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

Enviado: 21 Abr 2007 18:50
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

Enviado: 21 Abr 2007 19:22
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