imprimir acento no win32prn()

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

lapinhazzz
Usuário Nível 3
Usuário Nível 3
Mensagens: 130
Registrado em: 20 Abr 2009 10:52
Localização: LAGOA

imprimir acento no win32prn()

Mensagem por lapinhazzz »

Boa Noite amigos do forum.
Cá estou eu a chatear.
Agora como faço para imprimir acentos na classe de impressão win32prn().

:D

Obrigado a todos

lapinhazzz
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Re: imprimir acento no win32prn()

Mensagem por gvc »

A classe win32prn imprime a imagem do que vc mandou para a impressora.
Se vc postar as palavras acentuadas, elas sairão assim impressas.
Acho que vc esta confundindo com impressão DOS que tinha que usar a tabela de caracteres residente da impressora.
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
lapinhazzz
Usuário Nível 3
Usuário Nível 3
Mensagens: 130
Registrado em: 20 Abr 2009 10:52
Localização: LAGOA

Re: imprimir acento no win32prn()

Mensagem por lapinhazzz »

Bom Dia,

Amigos do Forum

Mas se imprimir linhas normais ou duplas do ascii elas não vão para a impressora.


Obrigado.

Cumprimentos

Lapinhazzz
Avatar do usuário
gvc
Colaborador
Colaborador
Mensagens: 1270
Registrado em: 23 Ago 2005 10:57

Re: imprimir acento no win32prn()

Mensagem por gvc »

Eu uso estes comandos para imprimir os textos no relatório usando win32prn.
Tb tem o uso de BMP impresso no mesmo.
Não podeire postar o código todo pois é da empresa.

Código: Selecionar todos

cprinter := getdefaultprinter()
oprinter:= win32prn():new(cprinter)
oPrinter:Landscape:= .F.
oPrinter:FormType := FORM_A4
oPrinter:Copies   := 1
oPrinter:Create()
oPrinter:startDoc()

cFileName := "brasaog.bmp"
oBmp      := Win32Bmp():new()
oBmp:loadFile(cFileName)

cFileName := "holerith41.bmp"
oBmp2      := Win32Bmp():new()
oBmp2:loadFile(cFileName)

cFileName := "brasaog2.bmp"
oBmp3      := Win32Bmp():new()
oBmp3:loadFile(cFileName)

oprinter:setPen(0, 5)


...


oPrinter:SetPrc(linha, 10)
oPrinter:TextOut('     Código', .T.)
oPrinter:SetPrc(linha, 40)
oPrinter:TextOut('Rendimento',,, 1)
oPrinter:SetPrc(linha, 60)
oPrinter:TextOut('Imposto Retido',,, 1)
oPrinter:SetPrc(linha++, 80)
oPrinter:TextOut('INSS',,, 1)

...

oBmp2:draw( oPrinter, {tamanhos[5, 1], tamanhos[5, 2], tamanhos[5, 3], tamanhos[5, 4]})

// Brasão Contra-Capa
oBmp3:draw( oPrinter, {tamanhos[6, 1], tamanhos[6, 2], tamanhos[6, 3], tamanhos[6, 4]})

linha := 24
oPrinter:SetPrc(linha++, 20)
oPrinter:TextOut(darf01->nome, .T.)

oPrinter:SetPrc(linha++, 20)
oPrinter:TextOut(darf01->endereco, .T.)

oPrinter:SetPrc(linha++, 20)
oPrinter:TextOut(darf01->bairro, .T.)
"TRS-80/Sincler/Apple/PC - Clipper Winter 85, tlink 1.0 [pc 10 MHz - 640K] {NEZ 8000 2Kb RAM}"
{POG - Programação Orientada a Gambiarra}
Hasse
Usuário Nível 4
Usuário Nível 4
Mensagens: 820
Registrado em: 19 Out 2004 10:30
Localização: Jaraguá do Sul - SC

Re: imprimir acento no win32prn()

Mensagem por Hasse »

Use as funções:

Do DOS para Windows:
c_textoFinal := HB_OemToAnsi( c_textoOriginal )

Do Windows para o DOS:
c_textoFinal := HB_AnsiToOem( c_textoOriginal )

ou direto na linha de impressão:
oPrinter:TextOut( HB_OemToAnsi( c_textoOriginal ), .T. )
Hasse
CP200 / CP500 / Basic / dBase III / dBase IV / Clipper Summer / RTlink / Exospace.
Clipper 5.3b / Blinker 7.0 / CDX com TAG
xHarbour 1.2.1-6604 / Borland C++ (5.5.1) 32 bit / HBmake.
Harbour 3.2.0dev (r1412121623) / MINGW / HBM2 / MiniGui HMG 3.1.4 / IDE (Roberto Lopez).
"Conheça todas as teorias, domine todas as técnicas, mas, quando tocares uma alma humana, seja apenas outra alma humana." (C.G.Jung)
Responder