a impressora Canon eu nunca usei, mas acredito que ela não aceite esses comandos.
as impressoras LASERS, mesmo de marcas diferentes, tem a mesma linguagem
pelo menos algumas. XPL é a linguagem, onde X é o que muda... UPL por exemplo.
segue abaixo os codigos para uma impressora HP.
// Fofao Soft & CIA LTDA INC do Brazil
Teste := "Teste de impressao em "
Teste2 := " 1 2 3 4 5 6 7 8 9 0 a b c d e f g"
// Papel
EXECUTIVO := CHR(27)+"&l1A"
LETTER := CHR(27)+"&l2A" // CARTA
A4 := CHR(27)+"&l26A"
OFICIO := CHR(27)+"&l3A" // LEGAL
LENGH := CHR(27)+"&l#070#P"
LENTXT := CHR(27)+"&l#070#F"
TOPO := CHR(27)+"&l#000#E"
// Fonte
ELITE := CHR(27)+"(s3T"
VERTIC := CHR(27)+"(s0S"
ITALIC := CHR(27)+"(s1S"
NORMAL := CHR(27)+"(s0B"
PC850 := CHR(27)+"(s#06#H"
// Tamanho dos Caracteres CPP - Caracteres por Polegadas
Tam04 := CHR(27)+"(s04V"
Tam10 := CHR(27)+"(s10V"
// Tamanho dos Pontos - Altura do Caractere
Normal10 := Tam04 + CHR(27)+"(s10H"
Normal11 := Tam04 + CHR(27)+"(s11H"
Reduzido := Tam04 + CHR(27)+"(s15H"
Defaut := NORMAL + VERTIC
// Impressao em impressora HP serie 600
hp_reset := chr(27)+"E" // Reseta a impressora
hp_pp_A4 := chr(27)+"&l26A" // Formato do papel A4
hp_pp_DF := chr(27)+"&l0A" // Formato do papel Default
hp_pg_ret := chr(27)+"&l1O" // Formato de pagina retrato
hp_pg_nor := chr(27)+"&l0O" // Formato de pagina normal
// Voce pode chegar a qualquer tamanho de caracter trocando o numero de controle
// Troque aqui
// ||
// /
hp_ct_05 := chr(27)+"(s05H" // Tamanho do caracter 05 cpp
hp_ct_10 := chr(27)+"(s10H" // Tamanho do caracter 10 cpp == default
hp_ct_15 := chr(27)+"(s15H" // Tamanho do caracter 15 cpp
hp_ct_20 := chr(27)+"(s20H" // Tamanho do caracter 20 cpp
hp_ct_30 := chr(27)+"(s30H" // Tamanho do caracter 30 cpp
hp_ct_sbo := chr(27)+"(s1B" // Escreve em semi-bold
hp_ct_bol := chr(27)+"(s3B" // Escreve em bold
hp_ct_ebo := chr(27)+"(s4B" // Escreve em extra bold
hp_ct_nor := chr(27)+"(s0B" // Retira bold e volta ao normal
hp_econom := CHR(27)+"(s1Q" // Formato de impressao modo economico
hp_normal := CHR(27)+"(s2Q" // Formato de impressao modo carta normal
hp_liga_cor := chr(27)+"*r-3U" // Habilita impressao em cores
hp_desl_cor := chr(27)+"*r1U" // Desabilita impressao em cores
hp_azul := hp_liga_cor + chr(27)+"*v1S"
hp_magenta := hp_liga_cor + chr(27)+"*v2S"
hp_cyan := hp_liga_cor + chr(27)+"*v3S"
hp_amarelo := hp_liga_cor + chr(27)+"*v4S"
hp_verde := hp_liga_cor + chr(27)+"*v5S"
hp_vermelho := hp_liga_cor + chr(27)+"*v6S"
hp_preto := hp_liga_cor + chr(27)+"*v7S"
hp_azul2 := hp_liga_cor + chr(27)+"*v11S"
set print on
set console off
for nA := 1 to 2
?? hp_reset
?? hp_pp_A4
if nA==2
?? hp_pg_ret
endif
? "Testando..."
?? chr(13)+replicate("°",80)
? "Comandos de impressao HP serie 600"
if nA==2
?? " - Modo Retrato"
endif
?? chr(13)+replicate("°",80)
? ; ? "Acionamento modo economico" ; ?? chr(13)+replicate("°",80)
?? hp_econom
? Teste + "modo economico" + Teste2
? ; ? "Troca de caracteres por polegada" ; ?? chr(13)+replicate("°",80)
?? hp_ct_05 ; ? Teste + "modo 05 cpp" + Teste2
?? hp_ct_10 ; ? Teste + "modo 10 cpp" + Teste2
?? hp_ct_15 ; ? Teste + "modo 15 cpp" + Teste2
?? hp_ct_20 ; ? Teste + "modo 20 cpp" + Teste2
?? hp_ct_30 ; ? Teste + "modo 30 cpp" + Teste2
?? hp_ct_10
? ; ? "Teste impressao em negrito" ; ?? chr(13)+replicate("°",80)
?? hp_ct_nor ; ? Teste + "modo normal" + Teste2
?? hp_ct_sol ; ? Teste + "semi-bold " + Teste2
?? hp_ct_bol ; ? Teste + "bold " + Teste2
?? hp_ct_ebo ; ? Teste + "extra bold " + Teste2
?? hp_ct_nor
? Teste + "modo normal" + Teste2
? ; ? "Impressao em cores" ; ?? chr(13)+replicate("°",80)
?? hp_azul ; ? Teste + "cor (azul claro) " + Teste2
?? hp_magenta ; ? Teste + "cor (vermelho claro) " + Teste2
?? hp_cyan ; ? Teste + "cor (azul escuro) " + Teste2
?? hp_amarelo ; ? Teste + "cor (amarelo) " + Teste2
?? hp_verde ; ? Teste + "cor (verde) " + Teste2
?? hp_vermelho ; ? Teste + "cor (vermelho escuro)" + Teste2
?? hp_preto ; ? Teste + "cor (preto) " + Teste2
?? hp_azul2 ; ? Teste + "cor (azul escuro) " + Teste2
?? hp_preto
?? hp_ct_05
? padc("Testando...",40) ; ?? chr(13)+replicate("°",40)
eject
next
?? hp_reset
?? hp_pg_ret
?? hp_pp_A4
? "Testando..."
?? chr(13)+replicate("°",80)
? "Comando de impressao HP serie 600 - Modo Retrato"
?? chr(13)+replicate("°",80)
// linhas por polegada
? CHR(27)+"&l#4#D"
for cnt := 1 to 5
? Teste + "4 Linhas por Polegada"
next
? CHR(27)+"&l#6#D"
for cnt := 1 to 5
? Teste + "6 Linhas por Polegada"
next
? CHR(27)+"&l#8#D"
for cnt := 1 to 5
? Teste + "8 Linhas por Polegada"
next
? CHR(27)+"&l#2#D"
for cnt := 1 to 5
? Teste + "2 Linhas por Polegada"
next
? CHR(27)+"&l#8#D"
?? hp_ct_05
? padc("Testando...",40)
?? chr(13)+replicate("°",40)
eject
set print off
set console on