Página 1 de 1

imprimir acento no win32prn()

Enviado: 01 Dez 2009 18:31
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

Re: imprimir acento no win32prn()

Enviado: 01 Dez 2009 20:04
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.

Re: imprimir acento no win32prn()

Enviado: 02 Dez 2009 11:37
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

Re: imprimir acento no win32prn()

Enviado: 02 Dez 2009 12:13
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.)

Re: imprimir acento no win32prn()

Enviado: 02 Dez 2009 19:03
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. )