mudar codepage do arquivo RTF

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

edegar_metodo
Usuário Nível 1
Usuário Nível 1
Mensagens: 40
Registrado em: 19 Ago 2008 18:29
Localização: Colorado - Pr

mudar codepage do arquivo RTF

Mensagem 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.
Claudio Soto
Colaborador
Colaborador
Mensagens: 566
Registrado em: 27 Ago 2012 12:31
Localização: Uruguay
Contato:

mudar codepage do arquivo RTF

Mensagem por Claudio Soto »

Ver en este Link la sección "charset", tal vez pueda ser de ayuda.

http://www.biblioscape.com/rtf15_spec.htm
Saludos.
Dr. Claudio Soto
(Uruguay)
http://srvet.blogspot.com
edegar_metodo
Usuário Nível 1
Usuário Nível 1
Mensagens: 40
Registrado em: 19 Ago 2008 18:29
Localização: Colorado - Pr

mudar codepage do arquivo RTF

Mensagem 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.
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

mudar codepage do arquivo RTF

Mensagem 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 )
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
edegar_metodo
Usuário Nível 1
Usuário Nível 1
Mensagens: 40
Registrado em: 19 Ago 2008 18:29
Localização: Colorado - Pr

mudar codepage do arquivo RTF

Mensagem 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.
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

mudar codepage do arquivo RTF

Mensagem 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.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
edegar_metodo
Usuário Nível 1
Usuário Nível 1
Mensagens: 40
Registrado em: 19 Ago 2008 18:29
Localização: Colorado - Pr

mudar codepage do arquivo RTF

Mensagem 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.
edegar_metodo
Usuário Nível 1
Usuário Nível 1
Mensagens: 40
Registrado em: 19 Ago 2008 18:29
Localização: Colorado - Pr

mudar codepage do arquivo RTF

Mensagem 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??
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

mudar codepage do arquivo RTF

Mensagem 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.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Responder