Hace un tiempo encontre esta rutina para HP,
aun no la he probado asi que no se si funciona.
Suerte
Jose
/*
Esta fun‡„o tem como objetivo a impress„o em cores para a impressora HP.
Autor: Emerson Borges dos Santos
Fone: 041-961-5884
Compila‡„o Clipper hp.prg
Linkedi‡„o Rtlink hp.obj
*/
cls
SIMNAO := SPACE(01)
@ 12,15 SAY "Confirma o Teste de Impress„o para a HP ?" GET SIMNAO PICTURE "!";
VALID(SIMNAO $ "SN")
?? chr(07)
READ
IF LASTKEY() = 27
CLS
QUIT
ENDIF
IF SIMNAO = "S"
SET DEVICE TO PRINT
SET CONSOLE OFF
@ PROW()+1,1 SAY CHR(27)+'(s10H'
@ PROW()+1,1 SAY "Teste de Impressao Letra Normal"
@ PROW()+1,1 SAY CHR(27)+'(s17.5H'
@ PROW()+1,1 SAY "Teste de Impressao Letra 17,5 Cpp"
@ PROW()+1,1 SAY CHR(27)+'(s10H'
@ PROW()+1,1 SAY "Teste de Impressao Letra Normal"
@ PROW()+1,1 SAY CHR(27)+'(s12H'
@ PROW()+1,1 SAY "Teste de Impressao Letra 12 Cpp"
@ PROW()+1,1 SAY CHR(27)+'(s10H'
@ PROW()+1,1 SAY "Teste de Impressao Letra Normal"
@ PROW()+1,1 SAY CHR(27)+'(s3H'
@ PROW()+1,1 SAY "Teste de Impressao Letra Expandida"
@ PROW()+1,1 SAY CHR(27)+'(s10H'
@ PROW()+1,1 SAY "Teste de Impressao Letra Normal"
@ PROW()+1,1 SAY CHR(27)+'(s50H'
@ PROW()+1,1 SAY "Teste de Impressao Letra Expandida"
@ PROW()+1,1 SAY CHR(27)+'(s10H'
@ PROW()+1,1 SAY "Teste de Impressao Letra Normal"
@ PROW()+1,1 SAY CHR(27)+CHR(38)+CHR(108)+'#4#'+CHR(68)
@ PROW()+1,1 SAY "Teste de Impress„o 4 Linhas por Polegada"
@ PROW()+1,1 SAY CHR(27)+CHR(38)+CHR(108)+'#6#'+CHR(68)
@ PROW()+1,1 SAY "Teste de Impress„o 6 Linhas por Polegada"
@ PROW()+1,1 SAY CHR(27)+CHR(38)+CHR(108)+'#8#'+CHR(68)
@ PROW()+1,1 SAY "Teste de Impress„o 8 Linhas por Polegada"
@ PROW()+1,1 SAY CHR(27)+CHR(38)+CHR(108)+'#2#'+CHR(68)
@ PROW()+1,1 SAY "Teste de Impress„o 2 Linhas por Polegada"
EJECT
SET CONSOLE ON
SET DEVICE TO SCREEN
// HP 600 e HP 660
OFICIO := CHR(27)+CHR(38)+CHR(108)+CHR(51)+CHR(65)
LENGH := CHR(27)+CHR(38)+CHR(108)+'#070#'+CHR(80)
LENTXT := CHR(27)+CHR(38)+CHR(108)+'#070#'+CHR(70)
TOPO := CHR(27)+CHR(38)+CHR(108)+'#000#'+CHR(69)
ELITE := CHR(27)+CHR(40)+CHR(115)+CHR(51)+CHR(84)
VERTIC := CHR(27)+CHR(40)+CHR(115)+CHR(48)+CHR(83)
ITALIC := CHR(27)+CHR(40)+CHR(115)+CHR(49)+CHR(83)
NORMAL := CHR(27)+CHR(40)+CHR(115)+CHR(48)+CHR(66)
PC850 := CHR(27)+CHR(40)+CHR(115)+'#06#'+CHR(72)
// Tamanho dos Caracteres CPP - Caracteres por Polegadas
Tam04 := CHR(27)+CHR(40)+CHR(115)+'04'+CHR(86)
Tam10 := CHR(27)+CHR(40)+CHR(115)+'10'+CHR(86)
// Tamanho dos Pontos - Altura do Caractere
Normal10 := Tam04+CHR(27)+CHR(40)+CHR(115)+'10'+CHR(72)
Normal11 := Tam04+CHR(27)+CHR(40)+CHR(115)+'11'+CHR(72)
Reduzido := Tam04+CHR(27)+CHR(40)+CHR(115)+'15'+CHR(72)
Defaut := CHR(27)+CHR(40)+CHR(115)+CHR(48)+CHR(66)+VERTIC
Cor_Des := CHR(27)+CHR(42)+CHR(114)+CHR(49)+CHR(85)
Cor := CHR(27)+CHR(42)+CHR(114)+CHR(45)+CHR(51)+CHR(85)
Azul := CHR(27)+CHR(42)+CHR(118)+'1'+CHR(83)
Magenta := CHR(27)+CHR(42)+CHR(118)+'2'+CHR(83)
Cyan := CHR(27)+CHR(42)+CHR(118)+'3'+CHR(83)
Amarelo := CHR(27)+CHR(42)+CHR(118)+'4'+CHR(83)
Verde := CHR(27)+CHR(42)+CHR(118)+'5'+CHR(83)
Vermelho := CHR(27)+CHR(42)+CHR(118)+'6'+CHR(83)
Preto := CHR(27)+CHR(42)+CHR(118)+'7'+CHR(83)
SET DEVICE TO PRINT
@ 00,00 SAY Defaut+OFICIO+LENGH+LENTXT+PC850+ELITE+TOPO+NORMAL10+''
@ 01,00 SAY Cor+Azul + "Teste de Impressao de Cor - Azul"
@ 02,00 SAY Cor+Magenta + "Teste de Impressao de Cor - Magenta"
@ 03,00 SAY Cor+Cyan + "Teste de Impressao de Cor - Cyan"
@ 04,00 SAY Cor+Amarelo + "Teste de Impressao de Cor - Amarelo"
@ 05,00 SAY Cor+Verde + "Teste de Impressao de Cor - Verde"
@ 06,00 SAY Cor+Vermelho + "Teste de Impressao de Cor - Vermelho"
EJECT
SET DEVICE TO SCREEN
ELSE
CLS
QUIT
ENDIF