VDOPrint acentuação
16/12/2005
0
Não estou conseguindo fazer a acentuação sair impressa.
Exemplo: Notificação sai Notificacao
Estou usando uma Epson FX-1170
Att
Armando.boza
Posts
16/12/2005
Vinicius2k
Não é bug, eu o fiz para não imprimir acentuação, realmente. :)
O texto é ´limpo´ antes de ser enviado à impressora para maximizar a compatibilidade com os diferentes modelos de impressoras matriciais.
Se desejar, altere o código fonte desta forma:
1. Abra a unit [b:5ec5aab5a4]VDODmPrinter.pas[/b:5ec5aab5a4] (´raiz\src´).
2. Localize o método [b:5ec5aab5a4]Print[/b:5ec5aab5a4] (procedure TVDODmPrinter.Print).
3. Comente a linha:
Text := CleanText(Text);
Deixando-a desta forma:
// Text := CleanText(Text);
4. Salve a unit, abra e recompile o pacote (´raiz\packages\delphiX\VDOPrint.dpk´).
Qualquer dúvida, estou à disposição.
T+
16/12/2005
Armando.boza
Text := CleanText(Text);
// Text := CleanText(Text);
Muito obrigado...
Vou fazer as alterações.
Estou muito satisfeito com o componente, parabéns.
16/12/2005
Dopi
Gostaria de dar uma sugestão... Seria interessante ter uma propriedade no Componente que ativasse ou não esse filtro de caracteres acentuados...
Acredito que os caracteres acentuados são filtrados devido o motivo de várias impressoras ´se perderem´ quando tentam imprimir alguns deles...
Bom, se for esse o motivo, me lembrei de uma ´técnica´ muito muito antiga, que eu usava quando o Editor de Textos da moda era o WordStar... :)
Para imprimir todos os acentos corretamente, usavamos o comando BackSpace da Impressora, chr(8) (praticamente todas matriciais aceitam) e ´montamos´ o caracter acentuado... Exemplo:
´Á´ seria substituido por ´A´ + #8 + ´´´
O problema dessa ´ténica´ é que a impressora da um solavanco a cada acento impresso, pois ela Imprime a letra, volta o carro e imprime o acento...
16/12/2005
Vinicius2k
Sugestão aceita. Realmente, fui arbitrário neste ponto. Esta imposição foi devida a minha própria forma de trabalhar, forma onde impeço até mesmo o cadastramento em BDs utilizando caracteres especiais ou acentos.
Exatamente por isto. Alguns modelos, principalmente os mais antigos, não trabalham bem com acentos e cedilha. Ou não imprimem nada ou imprimem um caracter estranho.
´Á´ seria substituido por ´A´ + #8 + ´´´
Eu não conhecia esta técnica, mas vou implementar um meio termo. Já ´visualizei´ o problema do solavanco, então, vou criar duas novas proprieades: uma para definir se o usuário deseja ou não os caracteres acentuados e outra aonde ele pode escolher um modo de compatibilidade para estes caracteres caso tenha algum problema com impressoras antigas.
O que vocês acham? Vocês são usuários do VDOPrint como eu sou, então, podem manifestar opinião à vontade ! ;)
Daniel, você conhece os caracteres de controle para as RIMA? Há pouco tempo um usuário me reclamou são conseguir imprimir corretamente e gostaria, se possível, adicionar também o suporte as RIMA nesta nova versão.
Outra coisa: alguém pode criar um package qualquer (pode ser vazio mesmo) para o Delphi 2005 e me enviar e se dispor também a testar o VDOPrint nesta versão do Delphi? Eu não comprei o Delphi 2005 e não sei se a estrutura do package (VCL) foi mudada...
T+
16/12/2005
Eniorm
e pra sair corretamente acentuado a impressora deve estar configurada pra suportar os caracteres acentuados...
abraço
16/12/2005
Dopi
Acho que é possível fazer toda a configuração com apenas uma propriedade... Exemplo:
TVDOPrintAcentuacao = (aceNaoInterferir, aceNenhumAcento, aceBackSpace, aceDuasLinhas)
Explicando:
aceNaoInterferir -> Envia os caracteres da maneira que eles chegaram
aceNenhumAcento-> Limpa os acentos
aceBackSpace -> Usa a técnica do BackSpace para imprimir os acentos
aceDuasLinhas -> Imprime a linha em dois passos. No primeiro passo, imprime a linha toda com as letras sem os acentos... Depois disso, manda apenas um retorno de carro (CR) ou #13.. e Imprima na mesma linha os acentos nas posições corretas...
Observe que lembrei de uma nova ´técnica´ :) que também era usada na época do WordStar, porém sem provocar vários ´solavancos´... Isso é muito útil quando o texto tem vários acentos na mesma linha...
Acho que são são os mesmos códigos das primeiras EPSONs... Os código que conheço estão [url=http://forum.clubedelphi.net/viewtopic.php?t=58409]nesse post[/url]... Acho que a RIMA não aceita todos os comandos começados com ESC... Mas afinal quem ainda tem esse dinossauro ? :)
Já tive relatos de usuários que instalaram o ACBr no Delphi 2005... e eu nunca preparei um package específico para essa versão... Acho que ele abre bem o package do D7
16/12/2005
Dopi
http://www.the-oasis.net/files/general/prnfile.zip
17/12/2005
Vinicius2k
TVDOPrintAcentuacao = (aceNaoInterferir, aceNenhumAcento, aceBackSpace, aceDuasLinhas)
Pois é. :)
Acabei percebendo isto antes de ler seu post. Mas valeu a dica. Só não tinha pensado a 4ª forma. Esta 4ª alternativa, já me parece mais difícil de implementar devido a forma com que o VDOPrint trabalha, bufferizando a linha toda antes de enviá-la para a impressora. Vou ter que pensar com cuidado sobre isto...
[quote:1e453ad24f=´Sobre RIMA, Dopi´]Acho que são são os mesmos códigos das primeiras EPSONs... Os código que conheço estão [url=http://forum.clubedelphi.net/viewtopic.php?t=58409]nesse post[/url]... Acho que a RIMA não aceita todos os comandos começados com ESC... Mas afinal quem ainda tem esse dinossauro ? :)[/quote:1e453ad24f]
Acho que pouca gente, mas ainda existe. Pode acreditar :)
Que bom. Eu ainda não tive nenhum feedback sobre isto com o VDOPrint. Enquanto isto, vou deixar desta forma, mas nos próximos meses devo adquirir o Delphi 2006, então a compatibilidade do VDOPrint irá aumentar.
Clique aqui para fazer login e interagir na Comunidade :)