Página 1 de 1

mudar codepage do arquivo RTF

Enviado: 04 Mai 2018 23:16
por edegar_metodo
Peço desculpas se estiver no lugar errado, li alguns tópicos mas fiquei confuso, tenho um programa funcionando 100%, acontece que mudou a usuária, e esta nova usuária cadastrou vários clientes com acentuação, na visualização tudo legal, mas ao abrir os relatórios (o programa gera um rtf, por sinal com fontes e tamanhos diferentes) mas os acentos ficam todos doidos, pensei em ler caracter por caracter antes de imprimir, mas deve ter um jeito mais simples, no caso das impressoras matriciais, troca-se o codpage e tudo resolvido, e aqui como resolve?? tem outro detalhe, sem a linha inicial do arquivo RTF, ao abri-lo no word, ele pede para converter, mas ao escolher Europa Ocidental (DOS), fica perfeito, então deve de ter jeito.

mudar codepage do arquivo RTF

Enviado: 05 Mai 2018 14:58
por Claudio Soto
Ver en este Link la sección "charset", tal vez pueda ser de ayuda.

http://www.biblioscape.com/rtf15_spec.htm

mudar codepage do arquivo RTF

Enviado: 07 Mai 2018 00:19
por edegar_metodo
Gracias, pero acabé convirtiendo el carácter por carácter, la rutina se hizo pequeña, pero debe disminuir el rendimiento, pero gracias por la ayuda.

mudar codepage do arquivo RTF

Enviado: 07 Mai 2018 07:23
por Jairo Maia
Em Harbour tem as funções que alteram as CodePages nativamente, mas em Clipper, para que isso não ocorra novamente, uma opção é você remover os acentos antes de salvar no arquivo RTF os campos que possam ser acentuados, como nome do cliente, nome do produto, endereço, cidade, etc, usando a função abaixo. Exemplo:

Código: Selecionar todos

cArqRTF += TiraAcentos( cNomeCli )

Código: Selecionar todos

/*
  Tira acentos de campos caracteres
*/
Func TiraAcentos( cTexto )

   // acento agudo
   cTexto := StrTran( cTexto, "á", "a" )
   cTexto := StrTran( cTexto, "é", "e" )
   cTexto := StrTran( cTexto, "í", "i" )
   cTexto := StrTran( cTexto, "ó", "o" )
   cTexto := StrTran( cTexto, "ú", "u" )
   cTexto := StrTran( cTexto, "Á", "A" )
   cTexto := StrTran( cTexto, "É", "E" )
   cTexto := StrTran( cTexto, "Í", "I" )
   cTexto := StrTran( cTexto, "Ó", "O" )
   cTexto := StrTran( cTexto, "Ú", "U" )

   // acento circunflexo
   cTexto := StrTran( cTexto, "â", "a" )
   cTexto := StrTran( cTexto, "ê", "e" )
   cTexto := StrTran( cTexto, "î", "i" )
   cTexto := StrTran( cTexto, "ô", "o" )
   cTexto := StrTran( cTexto, "û", "u" )
   cTexto := StrTran( cTexto, "Â", "A" )
   cTexto := StrTran( cTexto, "Ê", "E" )
   cTexto := StrTran( cTexto, "Î", "I" )
   cTexto := StrTran( cTexto, "Ô", "O" )
   cTexto := StrTran( cTexto, "Û", "U" )

   // til
   cTexto := StrTran( cTexto, "ã", "a" )
   cTexto := StrTran( cTexto, "õ", "o" )
   cTexto := StrTran( cTexto, "Ã", "A" )
   cTexto := StrTran( cTexto, "Õ", "O" )

   // ce-cedilha
   cTexto := StrTran( cTexto, "ç", "c" )
   cTexto := StrTran( cTexto, "Ç", "C" )

   // trema
   cTexto := StrTran( cTexto, "ü", "u" )
   cTexto := StrTran( cTexto, "Ü", "U" )

   // crase
   cTexto := StrTran( cTexto, "à", "a" )
   cTexto := StrTran( cTexto, "è", "e" )
   cTexto := StrTran( cTexto, "ì", "i" )
   cTexto := StrTran( cTexto, "ò", "o" )
   cTexto := StrTran( cTexto, "ù", "u" )
   cTexto := StrTran( cTexto, "À", "A" )
   cTexto := StrTran( cTexto, "È", "E" )
   cTexto := StrTran( cTexto, "Ì", "I" )
   cTexto := StrTran( cTexto, "Ò", "O" )
   cTexto := StrTran( cTexto, "Ù", "U" )

Return ( cTexto )

mudar codepage do arquivo RTF

Enviado: 07 Mai 2018 20:51
por edegar_metodo
ops, estou compilando com o xharbour, tem jeito nativamente??? como eu disse no momento de gerar o pdf, estou convertendo os caracteres especiais para o padrão 1252.

mudar codepage do arquivo RTF

Enviado: 08 Mai 2018 10:33
por Jairo Maia
O padrão 1252 é o padrão ANSI (Windows). Em Harbour, para alterar um texto em OEM para ANSI uso a função Hb_OEMToANSI( cTexto ). E funciona normalmente com o PDF.

Em xHarbour sei que tem as funções: Hb_OEMToANSI() e Hb_ANSIToOEM(). Veja se não ajuda.

mudar codepage do arquivo RTF

Enviado: 09 Mai 2018 16:09
por edegar_metodo
boa tarde, então eu queria não precisar usar uma função, apenas alterar o code page, se for para usar uma função já estou usando a que criei, (no momento da necessidade como não localizei uma nativa, foi no braço....rsrsrsrsrsrsrsr, quando os olhos não acham a cabeça padece..rsrsrsrs) e o interessante que na semana passada estava no cliente, precisei olhar uma variável no banco, acabei abrindo o arquivo com o excel, e no excel os acentos estavam perfeitos como vemos no programa, ou seja, se o Excel / word mostra os acentos como visualizados no DOS, e eu gero o pdf e abro pelo WordView, logo deveria abrir, mas por hora tudo funcionando sem problemas, apenas temos que converter os acentos para o padrão Ansi no momento de gerar o arquivo. Por hora mais uma vez obrigado pela ajuda/atenção.

mudar codepage do arquivo RTF

Enviado: 09 Mai 2018 16:15
por edegar_metodo
ops, uma outra pergunta, a tela do DOS tem 80*25, se for usar uma lib grafica temos que mudar bastante, passei a algum tempo atras em um cliente que usa um programa onde a fonte parece ser texto, não é gráfica, mas o tamanho é bem maior tipo 40*160 ( parecido com hiperterminal / putty ), tem idéia como faz??

mudar codepage do arquivo RTF

Enviado: 10 Mai 2018 10:03
por Jairo Maia
edegar_metodo escreveu:tem idéia como faz??
Essa não é uma questão que se resolve em uma única dica. Depende de qual LIB Gráfica você vai usar. Se for por exemplo a GTWVG, procure por: "Tela cheia com gtwvg", no campo de busca do fórum que vai encontrar muita coisa sobre isso.

Mas com a GTWVT, isso é muito fácil. Veja Nesse exemplo: Tela Cheia Usando GTWVT com Windows ou Linux.

Nota: Lembrando que a GTWVT não dá suporte a imagens.