Utilidade Pública... Comandos HP (Específico)

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

Mlizander
Usuário Nível 1
Usuário Nível 1
Mensagens: 11
Registrado em: 30 Jun 2005 16:22
Localização: Nova Iguaçu - RJ
Contato:

Utilidade Pública... Comandos HP (Específico)

Mensagem por Mlizander »

Estive ralando com alguns PCL's e, não obtendo muito louvor, entrei em contato com a HP que me passou esse link para uma tabela (em inglês) de comandos PCLs que rodam 100% (segundo eles) nas impressoras HP.

Para quem interessar...

http://h10025.www1.hp.com/ewfrf/wc/gene ... e=bud09160
Um Clip Abraço!
Marcus Lizander
Avatar do usuário
rrfsistemas
Usuário Nível 3
Usuário Nível 3
Mensagens: 249
Registrado em: 11 Jul 2004 18:16
Localização: Uberlândia/MG

Mensagem por rrfsistemas »

Estou contribuindo com algumas funçoes que trabalham com HP's em geral.

Estas funções foram baseadas em PCL nível 5, conforme manual da HP LaserJet.
Se observarem no site referido acima, as segquências de códigos são identicas.
Se alguém implementar estes códigos gostaria que me envia-se uma cópia.

Espero que apreciem.

:D

*----------------------------------------------------------------------------*
* RRF Sistemas de Informação Departamento de Software *
*----------------------------------------------------------------------------*
* Sistema .: Generico Versao : 1.00 *
* Analise .: Renato Rib. Ferreira *
*----------------------------------------------------------------------------*
* Programa : HPPROC.PRG Versao : 1.00 *
* Tipo ....: Modulo de Funcoes Escrita: 10/07/98 *
* Autor ...: Renato Ribeiro Ferreira Usando : Clipper 5.01 Virtuos 386 *
*----------------------------------------------------------------------------*
* Funcao ..: Configurar impressao da HP DeskJet *
*----------------------------------------------------------------------------*
* Data Responsavel Local Manutencao *
*----------------------------------------------------------------------------*
* 10/07/98 Renato CPD ONA Original *
*----------------------------------------------------------------------------*
* Objetos Utilizados *
*----------------------------------------------------------------------------*
* Arquivos .: N *
* Graficos .: N *
* Relatorios: N *
* SubRotinas: N *
* Telas ....: Tela do Sistema *
*----------------------------------------------------------------------------*
* Detalhes Adicionais *
*----------------------------------------------------------------------------*
* *
*----------------------------------------------------------------------------*
//**********************************************************************//
// Funcao HP DeskJet para condensar Horizontalmente em 10 CPP - 12 CPP //
// Passa parametro 10-12-15-20 ?10 15 CPP - 20 CPP //
//**********************************************************************//
Function HP_Conden(CPP)
If CPP == "10"
@ Prow(),Pcol() Say Chr(27) + "(" + "s" + "10" + "H"
ElseIf CPP == "12"
@ Prow(),Pcol() Say Chr(27) + "(" + "s" + "12" + "H"
ElseIf CPP == "15"
@ Prow(),Pcol() Say Chr(27) + "(" + "s" + "15" + "H"
ElseIf CPP == "20"
@ Prow(),Pcol() Say Chr(27) + "(" + "s" + "20" + "H"
Else
@ Prow(),Pcol() Say Chr(27) + "(" + "s" + "10" + "H"
EndIf
Return

//**********************************************************************//
// Funcao HP DeskJet para colocar o caracter em destaque (Bold) //
// Passa B = Bold - EB = Extra Bold - N = Normal ? = Normal //
//**********************************************************************//
Function HP_BoldEx(EXTRA)
If EXTRA == "B"
@ Prow(), Pcol() say Chr(27) + "(" + "s" + "3" + "B"
ElseIf EXTRA == "EB"
@ Prow(), Pcol() say Chr(27) + "(" + "s" + "7" + "B"
ElseIf EXTRA == "N"
@ Prow(), Pcol() say Chr(27) + "(" + "s" + "0" + "B"
Else
@ Prow(), Pcol() say Chr(27) + "(" + "s" + "0" + "B"
EndIf
Return
//**********************************************************************//
// Funcao HP DeskJet para colocar o caracter micro padrao //
// Passa M = Micro //
//**********************************************************************//
Function HP_MicroC(Mc)
If Mc == "M"
@ Prow(), Pcol() say Chr(27) + "(" + "s" + "6" + "V"
@ Prow(), Pcol() say Chr(27) + "(" + "s" + "20" + "H"
Else
@ Prow(), Pcol() say Chr(27) + "(" + "s" + "12" + "V"
@ Prow(), Pcol() say Chr(27) + "(" + "s" + "10" + "H"
EndIf
Return
//**********************************************************************//
// Funcao HP DeskJet para colocar o caracter expandido //
// Passa E = Expandido //
//**********************************************************************//
Function HP_Expand(EX)
If EX == "E"
@ Prow(), Pcol() say Chr(27) + "(" + "s" + "12" + "V"
@ Prow(), Pcol() say Chr(27) + "(" + "s" + "5" + "H"
Else
@ Prow(), Pcol() say Chr(27) + "(" + "s" + "12" + "V"
@ Prow(), Pcol() say Chr(27) + "(" + "s" + "10" + "H"
EndIf
Return
//**********************************************************************//
// Funcao HP DeskJet para colocar o a linha em 1/6 ou 1/8 //
// Passa L6= 1/6 - L8 = 1/8 //
//**********************************************************************//
Function HP_LinePl(LP)
If LP == "L6"
@ Prow(), Pcol() say Chr(27) + "&" + "l" + "6" + "D"
ElseIf LP == "L8"
@ Prow(), Pcol() say Chr(27) + "&" + "l" + "8" + "D"
Else
@ Prow(), Pcol() say Chr(27) + "&" + "l" + "6" + "D"
EndIf
Return
//**********************************************************************//
// Funcao HP DeskJet para colocar o caracter em italico //
// Passa IT= I ? = Normal //
//**********************************************************************//
Function HP_Italic(IT)
If IT == "I"
@ Prow(), Pcol() say Chr(27) + "(" + "s" + "1" + "S"
Else
@ Prow(), Pcol() say Chr(27) + "(" + "s" + "0" + "S"
EndIf
Return
//**********************************************************************//
// Funcao HP DeskJet para colocar em qualidade de carta ou draft //
// Passa C = Carta - D = Draft //
//**********************************************************************//
Function HP_Qualid(QL)
If QL == "C"
@ Prow(), Pcol() say Chr(27) + "(" + "s" + "2" + "Q"
ElseIf QL == "D"
@ Prow(), Pcol() say Chr(27) + "(" + "s" + "1" + "Q"
Else
@ Prow(), Pcol() say Chr(27) + "(" + "s" + "1" + "Q"
EndIf
Return
//**********************************************************************//
// Funcao HP DeskJet para selecionar tamanho papel LTT = Letter //
// LGL = Legal * A4 = A4 * E10L = Envelope //
//**********************************************************************//
Function HP_PageSz(SIZE)
If SIZE == "LTT"
@ Prow(), Pcol() say Chr(27) + "&" + "l" + "2" + "A"
ElseIf SIZE == "LGL"
@ Prow(), Pcol() say Chr(27) + "&" + "l" + "3" + "A"
ElseIf SIZE == "A4"
@ Prow(), Pcol() say Chr(27) + "&" + "l" + "2" + "6" + "A"
ElseIf SIZE == "E10L"
@ Prow(), Pcol() say Chr(27) + "&" + "l" + "-" + "8" + "1" + "A"
EndIf
Return
//**********************************************************************//
// Funcao HP DeskJet para selecionar altura da margem //
//
//**********************************************************************//
Function HP_MarginTop()
@ Prow(), Pcol() say Chr(27) + "&" + "l" + "2" + "E"
Return
//**********************************************************************//
// Funcao HP DeskJet para colocar em LandScape (-) ou //
// Portrait (|) //
//**********************************************************************//
Function HP_PagOr(LP)
If LP == "L"
@ Prow(), Pcol() say Chr(27) + "&" + "l" + "1" + "O" // Land
ElseIf LP == "P"
@ Prow(), Pcol() say Chr(27) + "&" + "l" + "0" + "O" // Port
Else
@ Prow(), Pcol() say Chr(27) + "&" + "l" + "0" + "O" // Port
EndIf
Return
//**********************************************************************//
// Funcao HP DeskJet para setar Margem Esquerda //
// //
//**********************************************************************//
Function HP_MargSL(ML)
If CL == "ML"
@ Prow(), Pcol() say Chr(27) + "9"
ElseIf ML == "00"
@ Prow(), Pcol() say Chr(27) + "&" + "a" + "2" + "L"
Else
@ Prow(), Pcol() say Chr(27) + "9"
EndIf
Return
//**********************************************************************//
// Funcao HP DeskJet para setar Margem Direita //
// //
//**********************************************************************//
Function HP_MargSR(MR)
If CL == "MR"
@ Prow(), Pcol() say Chr(27) + "9"
ElseIf MR == "00"
@ Prow(), Pcol() say Chr(27) + "&" + "a" + "2" + "L"
Else
@ Prow(), Pcol() say Chr(27) + "9"
EndIf
Return
/**************************************************************************/
Function HP_Font(FT)
If FT == "PC850"
@ Prow(),Pcol() Say Chr(27) + "(" + "1" + "2" + "U"
EndIf
Return

/**************************************************************************/
Function HP_Space(PF)
If PF == "F"
@ Prow(),Pcol() Say Chr(27) + "(" + "s" + "0" + "P"
Endif
Return
//**********************************************************************//
// Funcao HP DeskJet para imprimir letra colorida //
// Passa parametro n§ da cor KCYM //
//**********************************************************************//
Function HP_Color(NC)

@ Prow(),Pcol() Say Chr(27) + "*" + "b" + "0" + "M"

@ Prow(),Pcol() Say Chr(27) + "*" + "r" + "-" + "4" + "U"

If !Empty(NC)
@ Prow(),Pcol() Say Chr(27) + "*" + "v" + NC + "S"
Else
@ Prow(),Pcol() Say Chr(27) + "*" + "v" + "1" + "S"
EndIf
Return

//************************************************************************//
// GRAFICOS
// Funcao HP DeskJet para impressao bi - uni - condicional bi > direcional /
// Passa parametro direcao do movimento da cabeca de impressao //
//************************************************************************//
Function HP_Dir_G(Arrow)

If Arrow = "BI" .or. Empty(Arrow)
@ Prow(),Pcol() Say Chr(27) + "*" + "p" + "1" + "N"
ElseIf Arrow = "L_R"
@ Prow(),Pcol() Say Chr(27) + "*" + "p" + "2" + "N"
ElseIf Arrow = "R_L"
@ Prow(),Pcol() Say Chr(27) + "*" + "p" + "3" + "N"
ElseIf Arrow = "CB"
@ Prow(),Pcol() Say Chr(27) + "*" + "p" + "4" + "N"
ElseIf Arrow = "GD"
@ Prow(),Pcol() Say Chr(27) + "*" + "p" + "0" + "N"
EndIf
Return

//************************************************************************//
// TEXTOS
// Funcao HP DeskJet para impressao bi - uni - condicional bi > direcional /
// Passa parametro direcao do movimento da cabeca de impressao //
//************************************************************************//
Function HP_Dir_T(Arrow)

If Arrow = "BI" .or. Empty(Arrow)
@ Prow(),Pcol() Say Chr(27) + "&" + "k" + "1" + "W"
ElseIf Arrow = "L_R"
@ Prow(),Pcol() Say Chr(27) + "&" + "k" + "0" + "W"
ElseIf Arrow = "R_L"
@ Prow(),Pcol() Say Chr(27) + "&" + "k" + "2" + "W"
Else
@ Prow(),Pcol() Say Chr(27) + "&" + "k" + "1" + "W"
EndIf
Return
//************************************************************************//
// Funcao HP para setar qualidade de impressao Letter EconoMode
//************************************************************************//
Function PrtQuality(PQ)
If PQ = "LTT"
@ Prow(),Pcol() Say Chr(27) + "(" + "s" + "2" + "Q"
ElseIf PQ = "EMD"
@ Prow(),Pcol() Say Chr(27) + "(" + "s" + "1" + "Q"
EndIf
Return
"Não é a ferramenta que faz o artesão e sim a sua criatividade...""
Renato Ribeiro Ferreira
Tecnologia em Analise de Sistemas de Informação
http://www.rrfsistemas.hd1.com.br
( VFP 9 + MySql e/ou Oracle 11 ) - ...Harbour/MiniGui...
Responder